// export Arabi , Rusi , You ; export Arabi2 , Rusi2 , You2 ; export Arabi3 ; export SideKhat ; var pom , pom1 ; var VIPka ; var i ; export lidi_other_surv ; export lidi_with_JMM ; starting begin Amici_na_zacatku = [ ] ;
   0: LD_ADDR_EXP 23
   4: PUSH
   5: EMPTY
   6: ST_TO_ADDR
// RandomizeAll ;
   7: CALL_OW 11
// Randomize ;
  11: CALL_OW 10
// Arabi := 2 ;
  15: LD_ADDR_EXP 1
  19: PUSH
  20: LD_INT 2
  22: ST_TO_ADDR
// Arabi2 = 5 ;
  23: LD_ADDR_EXP 4
  27: PUSH
  28: LD_INT 5
  30: ST_TO_ADDR
// Arabi3 = 7 ;
  31: LD_ADDR_EXP 7
  35: PUSH
  36: LD_INT 7
  38: ST_TO_ADDR
// You := 1 ;
  39: LD_ADDR_EXP 3
  43: PUSH
  44: LD_INT 1
  46: ST_TO_ADDR
// You2 = 4 ;
  47: LD_ADDR_EXP 6
  51: PUSH
  52: LD_INT 4
  54: ST_TO_ADDR
// Rusi := 3 ;
  55: LD_ADDR_EXP 2
  59: PUSH
  60: LD_INT 3
  62: ST_TO_ADDR
// SideKhat = 8 ;
  63: LD_ADDR_EXP 8
  67: PUSH
  68: LD_INT 8
  70: ST_TO_ADDR
// Rusi2 = 6 ;
  71: LD_ADDR_EXP 5
  75: PUSH
  76: LD_INT 6
  78: ST_TO_ADDR
// cas = [ 0 , : , 0 ] ;
  79: LD_ADDR_EXP 85
  83: PUSH
  84: LD_INT 0
  86: PUSH
  87: LD_STRING :
  89: PUSH
  90: LD_INT 0
  92: PUSH
  93: EMPTY
  94: LIST
  95: LIST
  96: LIST
  97: ST_TO_ADDR
// SetDificultyLevels ;
  98: CALL 33269 0 0
// GetConstants ;
 102: CALL 1737 0 0
// load_postav ;
 106: CALL 1534 0 0
// Res := 0 ;
 110: LD_ADDR_EXP 57
 114: PUSH
 115: LD_INT 0
 117: ST_TO_ADDR
// Dial = 0 ;
 118: LD_ADDR_EXP 38
 122: PUSH
 123: LD_INT 0
 125: ST_TO_ADDR
// COR_GO = 0 ;
 126: LD_ADDR_EXP 53
 130: PUSH
 131: LD_INT 0
 133: ST_TO_ADDR
// RUSI_AUTA = 0 ;
 134: LD_ADDR_EXP 34
 138: PUSH
 139: LD_INT 0
 141: ST_TO_ADDR
// END_ATTACK = false ;
 142: LD_ADDR_EXP 55
 146: PUSH
 147: LD_INT 0
 149: ST_TO_ADDR
// Arabi_utoci = false ;
 150: LD_ADDR_EXP 28
 154: PUSH
 155: LD_INT 0
 157: ST_TO_ADDR
// PRU_ATTACK = 0 ;
 158: LD_ADDR_EXP 35
 162: PUSH
 163: LD_INT 0
 165: ST_TO_ADDR
// KHATTAM_PADA = false ;
 166: LD_ADDR_EXP 56
 170: PUSH
 171: LD_INT 0
 173: ST_TO_ADDR
// UTEKLI_ARABI := 0 ;
 174: LD_ADDR_EXP 29
 178: PUSH
 179: LD_INT 0
 181: ST_TO_ADDR
// ingame_video = true ;
 182: LD_ADDR_OWVAR 52
 186: PUSH
 187: LD_INT 1
 189: ST_TO_ADDR
// uprav_mastodonty ;
 190: CALL 7086 0 0
// create_arabi ;
 194: CALL 2023 0 0
// create_am_vedci ;
 198: CALL 2420 0 0
// create_amici1 ;
 202: CALL 3493 0 0
// nah = Rand ( 1 , 4 ) ;
 206: LD_ADDR_EXP 33
 210: PUSH
 211: LD_INT 1
 213: PPUSH
 214: LD_INT 4
 216: PPUSH
 217: CALL_OW 12
 221: ST_TO_ADDR
// create_konvoj_ru ( nah ) ;
 222: LD_EXP 33
 226: PPUSH
 227: CALL 4659 0 1
// create_mechaniky_navic ;
 231: CALL 10026 0 0
// create_rusky_utok_0 ;
 235: CALL 8308 0 0
// create_rusky_attack1 ;
 239: CALL 6045 0 0
// create_vojaci ;
 243: CALL 6328 0 0
// create_attack_after_end ;
 247: CALL 8470 0 0
// create_2_new_attack ;
 251: CALL 7183 0 0
// create_3_new_attack ;
 255: CALL 7580 0 0
// create_bazooka_attack ;
 259: CALL 8059 0 0
// CenterNowOnXY ( 30 , 35 ) ;
 263: LD_INT 30
 265: PPUSH
 266: LD_INT 35
 268: PPUSH
 269: CALL_OW 86
// RevealFogArea ( Arabi , ASE ) ;
 273: LD_EXP 1
 277: PPUSH
 278: LD_INT 42
 280: PPUSH
 281: CALL_OW 332
// ChangeSideFog ( You , Arabi ) ;
 285: LD_EXP 3
 289: PPUSH
 290: LD_EXP 1
 294: PPUSH
 295: CALL_OW 343
// ChangeSideFog ( You2 , Arabi ) ;
 299: LD_EXP 6
 303: PPUSH
 304: LD_EXP 1
 308: PPUSH
 309: CALL_OW 343
// end ;
 313: END
// on UnitDestroyed ( un ) do begin if un = JMM then
 314: LD_VAR 0 1
 318: PUSH
 319: LD_EXP 40
 323: EQUAL
 324: IFFALSE 333
// YouLost ( JMM ) ;
 326: LD_STRING JMM
 328: PPUSH
 329: CALL_OW 104
// enable ;
 333: ENABLE
// end ;
 334: PPOPN 1
 336: END
// every 0 0$1 trigger END_ATTACK do
 337: LD_EXP 55
 341: IFFALSE 364
 343: GO 345
 345: DISABLE
// begin if not Arabi_Utoci then
 346: LD_EXP 28
 350: NOT
 351: IFFALSE 364
// begin powell_kecy ;
 353: CALL 30719 0 0
// YouLost ( Powell ) ;
 357: LD_STRING Powell
 359: PPUSH
 360: CALL_OW 104
// end ; end ;
 364: END
// on EndTheMissionRaised ( void ) do begin Mission_end ( EndTheMissionRaised - Main 132 ) ;
 365: LD_STRING EndTheMissionRaised - Main 132
 367: PPUSH
 368: CALL 375 0 1
// end ;
 372: PPOPN 1
 374: END
// export function Mission_end ( tst ) ; var all_people ; var pom1 , pom2 , i ; begin
 375: LD_INT 0
 377: PPUSH
 378: PPUSH
 379: PPUSH
 380: PPUSH
 381: PPUSH
// msg ( tst ) ;
 382: LD_VAR 0 1
 386: PPUSH
 387: CALL_OW 100
// DisableExclamations ;
 391: CALL_OW 474
// gained_medals := [ ] ;
 395: LD_ADDR_OWVAR 61
 399: PUSH
 400: EMPTY
 401: ST_TO_ADDR
// missing_medals := [ ] ;
 402: LD_ADDR_OWVAR 62
 406: PUSH
 407: EMPTY
 408: ST_TO_ADDR
// if GetTech ( tech_LasSight , You ) = state_researched then
 409: LD_INT 12
 411: PPUSH
 412: LD_EXP 3
 416: PPUSH
 417: CALL_OW 321
 421: PUSH
 422: LD_INT 2
 424: EQUAL
 425: IFFALSE 439
// AddMedal ( sights , 1 ) else
 427: LD_STRING sights
 429: PPUSH
 430: LD_INT 1
 432: PPUSH
 433: CALL_OW 101
 437: GO 450
// AddMedal ( sights , - 1 ) ;
 439: LD_STRING sights
 441: PPUSH
 442: LD_INT 1
 444: NEG
 445: PPUSH
 446: CALL_OW 101
// if GetTech ( tech_AI , You ) = state_researched then
 450: LD_INT 32
 452: PPUSH
 453: LD_EXP 3
 457: PPUSH
 458: CALL_OW 321
 462: PUSH
 463: LD_INT 2
 465: EQUAL
 466: IFFALSE 480
// AddMedal ( computers , 1 ) else
 468: LD_STRING computers
 470: PPUSH
 471: LD_INT 1
 473: PPUSH
 474: CALL_OW 101
 478: GO 491
// AddMedal ( computers , - 1 ) ;
 480: LD_STRING computers
 482: PPUSH
 483: LD_INT 1
 485: NEG
 486: PPUSH
 487: CALL_OW 101
// if UTEKLI_ARABI = 0 then
 491: LD_EXP 29
 495: PUSH
 496: LD_INT 0
 498: EQUAL
 499: IFFALSE 531
// if Arabi_Utoci then
 501: LD_EXP 28
 505: IFFALSE 519
// AddMedal ( renegades , 2 ) else
 507: LD_STRING renegades
 509: PPUSH
 510: LD_INT 2
 512: PPUSH
 513: CALL_OW 101
 517: GO 529
// AddMedal ( renegades , 1 ) else
 519: LD_STRING renegades
 521: PPUSH
 522: LD_INT 1
 524: PPUSH
 525: CALL_OW 101
 529: GO 565
// if UTEKLI_ARABI <= 2 then
 531: LD_EXP 29
 535: PUSH
 536: LD_INT 2
 538: LESSEQUAL
 539: IFFALSE 554
// AddMedal ( renegades , - 1 ) else
 541: LD_STRING renegades
 543: PPUSH
 544: LD_INT 1
 546: NEG
 547: PPUSH
 548: CALL_OW 101
 552: GO 565
// AddMedal ( renegades , - 2 ) ;
 554: LD_STRING renegades
 556: PPUSH
 557: LD_INT 2
 559: NEG
 560: PPUSH
 561: CALL_OW 101
// GiveMedals ( Main ) ;
 565: LD_STRING Main
 567: PPUSH
 568: CALL_OW 102
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
 572: LD_ADDR_LOC 1
 576: PUSH
 577: LD_INT 22
 579: PUSH
 580: LD_EXP 3
 584: PUSH
 585: EMPTY
 586: LIST
 587: LIST
 588: PUSH
 589: LD_INT 1
 591: PUSH
 592: EMPTY
 593: LIST
 594: PUSH
 595: LD_INT 21
 597: PUSH
 598: LD_INT 1
 600: PUSH
 601: EMPTY
 602: LIST
 603: LIST
 604: PUSH
 605: EMPTY
 606: LIST
 607: LIST
 608: LIST
 609: PPUSH
 610: CALL_OW 69
 614: ST_TO_ADDR
// for i in FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_vehicle ] ] ) do
 615: LD_ADDR_VAR 0 6
 619: PUSH
 620: LD_INT 22
 622: PUSH
 623: LD_EXP 3
 627: PUSH
 628: EMPTY
 629: LIST
 630: LIST
 631: PUSH
 632: LD_INT 1
 634: PUSH
 635: EMPTY
 636: LIST
 637: PUSH
 638: LD_INT 21
 640: PUSH
 641: LD_INT 2
 643: PUSH
 644: EMPTY
 645: LIST
 646: LIST
 647: PUSH
 648: EMPTY
 649: LIST
 650: LIST
 651: LIST
 652: PPUSH
 653: CALL_OW 69
 657: PUSH
 658: FOR_IN
 659: IFFALSE 707
// begin pom1 = IsDrivenBy ( i ) ;
 661: LD_ADDR_VAR 0 4
 665: PUSH
 666: LD_VAR 0 6
 670: PPUSH
 671: CALL_OW 311
 675: ST_TO_ADDR
// if not ( pom1 in pom ) then
 676: LD_VAR 0 4
 680: PUSH
 681: LD_LOC 1
 685: IN
 686: NOT
 687: IFFALSE 705
// pom = pom ^ pom1 ;
 689: LD_ADDR_LOC 1
 693: PUSH
 694: LD_LOC 1
 698: PUSH
 699: LD_VAR 0 4
 703: ADD
 704: ST_TO_ADDR
// end ;
 705: GO 658
 707: POP
 708: POP
// all_people = pom ;
 709: LD_ADDR_VAR 0 3
 713: PUSH
 714: LD_LOC 1
 718: ST_TO_ADDR
// all_people = all_people diff UnitFilter ( all_people , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] ] ) ;
 719: LD_ADDR_VAR 0 3
 723: PUSH
 724: LD_VAR 0 3
 728: PUSH
 729: LD_VAR 0 3
 733: PPUSH
 734: LD_INT 2
 736: PUSH
 737: LD_INT 25
 739: PUSH
 740: LD_INT 12
 742: PUSH
 743: EMPTY
 744: LIST
 745: LIST
 746: PUSH
 747: LD_INT 25
 749: PUSH
 750: LD_INT 16
 752: PUSH
 753: EMPTY
 754: LIST
 755: LIST
 756: PUSH
 757: EMPTY
 758: LIST
 759: LIST
 760: LIST
 761: PPUSH
 762: CALL_OW 72
 766: DIFF
 767: ST_TO_ADDR
// RewardPeople ( all_people ) ;
 768: LD_VAR 0 3
 772: PPUSH
 773: CALL_OW 43
// VIPka = [ JMM , Cyrus , Khattam , Simms , Joan_F , Gary , Powell , Denis , Cornel ] ;
 777: LD_ADDR_LOC 3
 781: PUSH
 782: LD_EXP 40
 786: PUSH
 787: LD_EXP 45
 791: PUSH
 792: LD_EXP 43
 796: PUSH
 797: LD_EXP 44
 801: PUSH
 802: LD_EXP 41
 806: PUSH
 807: LD_EXP 42
 811: PUSH
 812: LD_EXP 47
 816: PUSH
 817: LD_EXP 46
 821: PUSH
 822: LD_EXP 48
 826: PUSH
 827: EMPTY
 828: LIST
 829: LIST
 830: LIST
 831: LIST
 832: LIST
 833: LIST
 834: LIST
 835: LIST
 836: LIST
 837: ST_TO_ADDR
// SaveCharacters ( JMM , JMM ) ;
 838: LD_EXP 40
 842: PPUSH
 843: LD_STRING JMM
 845: PPUSH
 846: CALL_OW 38
// SaveCharacters ( Cyrus , Cyrus ) ;
 850: LD_EXP 45
 854: PPUSH
 855: LD_STRING Cyrus
 857: PPUSH
 858: CALL_OW 38
// SaveCharacters ( Khattam , Khatam ) ;
 862: LD_EXP 43
 866: PPUSH
 867: LD_STRING Khatam
 869: PPUSH
 870: CALL_OW 38
// SaveCharacters ( Simms , Simms ) ;
 874: LD_EXP 44
 878: PPUSH
 879: LD_STRING Simms
 881: PPUSH
 882: CALL_OW 38
// SaveVariable ( 6 , SimmsLoc ) ;
 886: LD_INT 6
 888: PPUSH
 889: LD_STRING SimmsLoc
 891: PPUSH
 892: CALL_OW 39
// SaveCharacters ( Joan_F , Joan ) ;
 896: LD_EXP 41
 900: PPUSH
 901: LD_STRING Joan
 903: PPUSH
 904: CALL_OW 38
// SaveVariable ( 6 , JoanLoc ) ;
 908: LD_INT 6
 910: PPUSH
 911: LD_STRING JoanLoc
 913: PPUSH
 914: CALL_OW 39
// SaveCharacters ( Gary , Gary ) ;
 918: LD_EXP 42
 922: PPUSH
 923: LD_STRING Gary
 925: PPUSH
 926: CALL_OW 38
// SaveVariable ( 6 , GaryLoc ) ;
 930: LD_INT 6
 932: PPUSH
 933: LD_STRING GaryLoc
 935: PPUSH
 936: CALL_OW 39
// SaveCharacters ( Powell , Powell ) ;
 940: LD_EXP 47
 944: PPUSH
 945: LD_STRING Powell
 947: PPUSH
 948: CALL_OW 38
// SaveCharacters ( Denis , Denis ) ;
 952: LD_EXP 46
 956: PPUSH
 957: LD_STRING Denis
 959: PPUSH
 960: CALL_OW 38
// SaveVariable ( 6 , DenisLoc ) ;
 964: LD_INT 6
 966: PPUSH
 967: LD_STRING DenisLoc
 969: PPUSH
 970: CALL_OW 39
// SaveCharacters ( Cornel , Cornell ) ;
 974: LD_EXP 48
 978: PPUSH
 979: LD_STRING Cornell
 981: PPUSH
 982: CALL_OW 38
// SaveVariable ( 6 , CornellLoc ) ;
 986: LD_INT 6
 988: PPUSH
 989: LD_STRING CornellLoc
 991: PPUSH
 992: CALL_OW 39
// DeleteVariable ( Stoupa9_siberit ) ;
 996: LD_STRING Stoupa9_siberit
 998: PPUSH
 999: CALL_OW 41
// DeleteVariable ( Stoupa9_informace ) ;
1003: LD_STRING Stoupa9_informace
1005: PPUSH
1006: CALL_OW 41
// DeleteVariable ( us2mikhail_state ) ;
1010: LD_STRING us2mikhail_state
1012: PPUSH
1013: CALL_OW 41
// pom1 = lidi_other_surv diff Amici_na_zacatku ;
1017: LD_ADDR_VAR 0 4
1021: PUSH
1022: LD_EXP 9
1026: PUSH
1027: LD_EXP 23
1031: DIFF
1032: ST_TO_ADDR
// pom2 = lidi_with_JMM diff Amici_na_zacatku ;
1033: LD_ADDR_VAR 0 5
1037: PUSH
1038: LD_EXP 10
1042: PUSH
1043: LD_EXP 23
1047: DIFF
1048: ST_TO_ADDR
// SaveCharacters ( pom1 , other_survivors ) ;
1049: LD_VAR 0 4
1053: PPUSH
1054: LD_STRING other_survivors
1056: PPUSH
1057: CALL_OW 38
// SaveCharacters ( pom2 , otherNotJMM ) ;
1061: LD_VAR 0 5
1065: PPUSH
1066: LD_STRING otherNotJMM
1068: PPUSH
1069: CALL_OW 38
// pom2 = all_people diff VIPka ;
1073: LD_ADDR_VAR 0 5
1077: PUSH
1078: LD_VAR 0 3
1082: PUSH
1083: LD_LOC 3
1087: DIFF
1088: ST_TO_ADDR
// SaveCharacters ( pom2 , otherWithJMM ) ;
1089: LD_VAR 0 5
1093: PPUSH
1094: LD_STRING otherWithJMM
1096: PPUSH
1097: CALL_OW 38
// pom = FilterUnitsInArea ( Eps_save , [ [ f_side , You ] , [ f_type , unit_building ] , [ f_ok ] ] ) ;
1101: LD_ADDR_LOC 1
1105: PUSH
1106: LD_INT 31
1108: PPUSH
1109: LD_INT 22
1111: PUSH
1112: LD_EXP 3
1116: PUSH
1117: EMPTY
1118: LIST
1119: LIST
1120: PUSH
1121: LD_INT 21
1123: PUSH
1124: LD_INT 3
1126: PUSH
1127: EMPTY
1128: LIST
1129: LIST
1130: PUSH
1131: LD_INT 50
1133: PUSH
1134: EMPTY
1135: LIST
1136: PUSH
1137: EMPTY
1138: LIST
1139: LIST
1140: LIST
1141: PPUSH
1142: CALL_OW 70
1146: ST_TO_ADDR
// pom1 = [ ] ;
1147: LD_ADDR_VAR 0 4
1151: PUSH
1152: EMPTY
1153: ST_TO_ADDR
// for i in pom do
1154: LD_ADDR_VAR 0 6
1158: PUSH
1159: LD_LOC 1
1163: PUSH
1164: FOR_IN
1165: IFFALSE 1505
// case GetBType ( i ) of b_lab , b_lab_half , b_lab_full :
1167: LD_VAR 0 6
1171: PPUSH
1172: CALL_OW 266
1176: PUSH
1177: LD_INT 6
1179: DOUBLE
1180: EQUAL
1181: IFTRUE 1197
1183: LD_INT 7
1185: DOUBLE
1186: EQUAL
1187: IFTRUE 1197
1189: LD_INT 8
1191: DOUBLE
1192: EQUAL
1193: IFTRUE 1197
1195: GO 1310
1197: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) , GetLabKind ( i , 1 ) , GetLabKind ( i , 2 ) ] ] ; b_bunker , b_turret :
1198: LD_ADDR_VAR 0 4
1202: PUSH
1203: LD_VAR 0 4
1207: PUSH
1208: LD_VAR 0 6
1212: PPUSH
1213: CALL_OW 266
1217: PUSH
1218: LD_VAR 0 6
1222: PPUSH
1223: CALL_OW 250
1227: PUSH
1228: LD_VAR 0 6
1232: PPUSH
1233: CALL_OW 251
1237: PUSH
1238: LD_VAR 0 6
1242: PPUSH
1243: CALL_OW 254
1247: PUSH
1248: LD_VAR 0 6
1252: PPUSH
1253: CALL_OW 267
1257: PUSH
1258: LD_VAR 0 6
1262: PPUSH
1263: CALL_OW 248
1267: PUSH
1268: LD_VAR 0 6
1272: PPUSH
1273: LD_INT 1
1275: PPUSH
1276: CALL_OW 268
1280: PUSH
1281: LD_VAR 0 6
1285: PPUSH
1286: LD_INT 2
1288: PPUSH
1289: CALL_OW 268
1293: PUSH
1294: EMPTY
1295: LIST
1296: LIST
1297: LIST
1298: LIST
1299: LIST
1300: LIST
1301: LIST
1302: LIST
1303: PUSH
1304: EMPTY
1305: LIST
1306: ADD
1307: ST_TO_ADDR
1308: GO 1503
1310: LD_INT 32
1312: DOUBLE
1313: EQUAL
1314: IFTRUE 1324
1316: LD_INT 33
1318: DOUBLE
1319: EQUAL
1320: IFTRUE 1324
1322: GO 1420
1324: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) , GetBWeapon ( i ) ] ] ; else
1325: LD_ADDR_VAR 0 4
1329: PUSH
1330: LD_VAR 0 4
1334: PUSH
1335: LD_VAR 0 6
1339: PPUSH
1340: CALL_OW 266
1344: PUSH
1345: LD_VAR 0 6
1349: PPUSH
1350: CALL_OW 250
1354: PUSH
1355: LD_VAR 0 6
1359: PPUSH
1360: CALL_OW 251
1364: PUSH
1365: LD_VAR 0 6
1369: PPUSH
1370: CALL_OW 254
1374: PUSH
1375: LD_VAR 0 6
1379: PPUSH
1380: CALL_OW 267
1384: PUSH
1385: LD_VAR 0 6
1389: PPUSH
1390: CALL_OW 248
1394: PUSH
1395: LD_VAR 0 6
1399: PPUSH
1400: CALL_OW 269
1404: PUSH
1405: EMPTY
1406: LIST
1407: LIST
1408: LIST
1409: LIST
1410: LIST
1411: LIST
1412: LIST
1413: PUSH
1414: EMPTY
1415: LIST
1416: ADD
1417: ST_TO_ADDR
1418: GO 1503
1420: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) ] ] ; end ;
1421: LD_ADDR_VAR 0 4
1425: PUSH
1426: LD_VAR 0 4
1430: PUSH
1431: LD_VAR 0 6
1435: PPUSH
1436: CALL_OW 266
1440: PUSH
1441: LD_VAR 0 6
1445: PPUSH
1446: CALL_OW 250
1450: PUSH
1451: LD_VAR 0 6
1455: PPUSH
1456: CALL_OW 251
1460: PUSH
1461: LD_VAR 0 6
1465: PPUSH
1466: CALL_OW 254
1470: PUSH
1471: LD_VAR 0 6
1475: PPUSH
1476: CALL_OW 267
1480: PUSH
1481: LD_VAR 0 6
1485: PPUSH
1486: CALL_OW 248
1490: PUSH
1491: EMPTY
1492: LIST
1493: LIST
1494: LIST
1495: LIST
1496: LIST
1497: LIST
1498: PUSH
1499: EMPTY
1500: LIST
1501: ADD
1502: ST_TO_ADDR
1503: GO 1164
1505: POP
1506: POP
// SaveVariable ( pom1 , Epsilon ) ;
1507: LD_VAR 0 4
1511: PPUSH
1512: LD_STRING Epsilon
1514: PPUSH
1515: CALL_OW 39
// YouWin ;
1519: CALL_OW 103
// EnableExclamations ;
1523: CALL_OW 473
// exit ;
1527: GO 1529
// end ;
1529: LD_VAR 0 2
1533: RET
// function load_postav ; var ah ; begin
1534: LD_INT 0
1536: PPUSH
1537: PPUSH
// Cyrus = nacti_osobu ( Cyrus ) ;
1538: LD_ADDR_EXP 45
1542: PUSH
1543: LD_STRING Cyrus
1545: PPUSH
1546: CALL 1979 0 1
1550: ST_TO_ADDR
// Khattam = nacti_osobu ( Khatam ) ;
1551: LD_ADDR_EXP 43
1555: PUSH
1556: LD_STRING Khatam
1558: PPUSH
1559: CALL 1979 0 1
1563: ST_TO_ADDR
// Simms = NewCharacter ( Simms ) ;
1564: LD_ADDR_EXP 44
1568: PUSH
1569: LD_STRING Simms
1571: PPUSH
1572: CALL_OW 25
1576: ST_TO_ADDR
// Joan_F = nacti_osobu ( Joan ) ;
1577: LD_ADDR_EXP 41
1581: PUSH
1582: LD_STRING Joan
1584: PPUSH
1585: CALL 1979 0 1
1589: ST_TO_ADDR
// JMM := CreateCharacter ( JMM ) ;
1590: LD_ADDR_EXP 40
1594: PUSH
1595: LD_STRING JMM
1597: PPUSH
1598: CALL_OW 34
1602: ST_TO_ADDR
// Gary = nacti_osobu ( Gary ) ;
1603: LD_ADDR_EXP 42
1607: PUSH
1608: LD_STRING Gary
1610: PPUSH
1611: CALL 1979 0 1
1615: ST_TO_ADDR
// if Gary = 0 then
1616: LD_EXP 42
1620: PUSH
1621: LD_INT 0
1623: EQUAL
1624: IFFALSE 1662
// begin prepare_human ( sex_male , class_soldier , 5 , David Love ) ;
1626: LD_INT 1
1628: PPUSH
1629: LD_INT 1
1631: PPUSH
1632: LD_INT 5
1634: PPUSH
1635: LD_STRING David Love
1637: PPUSH
1638: CALL 1944 0 4
// ah = CreateHuman ;
1642: LD_ADDR_VAR 0 2
1646: PUSH
1647: CALL_OW 44
1651: ST_TO_ADDR
// Gary = ah ;
1652: LD_ADDR_EXP 42
1656: PUSH
1657: LD_VAR 0 2
1661: ST_TO_ADDR
// end ; Denis = nacti_osobu ( Denis ) ;
1662: LD_ADDR_EXP 46
1666: PUSH
1667: LD_STRING Denis
1669: PPUSH
1670: CALL 1979 0 1
1674: ST_TO_ADDR
// Cornel = nacti_osobu ( Cornell ) ;
1675: LD_ADDR_EXP 48
1679: PUSH
1680: LD_STRING Cornell
1682: PPUSH
1683: CALL 1979 0 1
1687: ST_TO_ADDR
// Powell = NewCharacter ( Powell ) ;
1688: LD_ADDR_EXP 47
1692: PUSH
1693: LD_STRING Powell
1695: PPUSH
1696: CALL_OW 25
1700: ST_TO_ADDR
// uc_side = Arabi ;
1701: LD_ADDR_OWVAR 20
1705: PUSH
1706: LD_EXP 1
1710: ST_TO_ADDR
// uc_nation = nation_arabian ;
1711: LD_ADDR_OWVAR 21
1715: PUSH
1716: LD_INT 2
1718: ST_TO_ADDR
// Dietrich = NewCharacter ( Dietrich ) ;
1719: LD_ADDR_EXP 25
1723: PUSH
1724: LD_STRING Dietrich
1726: PPUSH
1727: CALL_OW 25
1731: ST_TO_ADDR
// end ;
1732: LD_VAR 0 1
1736: RET
// export function GetConstants ; begin
1737: LD_INT 0
1739: PPUSH
// VIDEL_MIKHAILA := LoadVariable ( videl_mikhaila , true ) ;
1740: LD_ADDR_EXP 81
1744: PUSH
1745: LD_STRING videl_mikhaila
1747: PPUSH
1748: LD_INT 1
1750: PPUSH
1751: CALL_OW 30
1755: ST_TO_ADDR
// VI_O_GRANATECH := LoadVariable ( Stoupa9_informace , false ) ;
1756: LD_ADDR_EXP 82
1760: PUSH
1761: LD_STRING Stoupa9_informace
1763: PPUSH
1764: LD_INT 0
1766: PPUSH
1767: CALL_OW 30
1771: ST_TO_ADDR
// ZIJE_MIKHAIL := LoadVariable ( us2mikhail_state , 1 ) ;
1772: LD_ADDR_EXP 83
1776: PUSH
1777: LD_STRING us2mikhail_state
1779: PPUSH
1780: LD_INT 1
1782: PPUSH
1783: CALL_OW 30
1787: ST_TO_ADDR
// if ( ZIJE_MIKHAIL = 5 ) or ( ZIJE_MIKHAIL = 4 ) then
1788: LD_EXP 83
1792: PUSH
1793: LD_INT 5
1795: EQUAL
1796: PUSH
1797: LD_EXP 83
1801: PUSH
1802: LD_INT 4
1804: EQUAL
1805: OR
1806: IFFALSE 1818
// ZIJE_MIKHAIL = true else
1808: LD_ADDR_EXP 83
1812: PUSH
1813: LD_INT 1
1815: ST_TO_ADDR
1816: GO 1826
// ZIJE_MIKHAIL = false ;
1818: LD_ADDR_EXP 83
1822: PUSH
1823: LD_INT 0
1825: ST_TO_ADDR
// if CheckCharacterSet ( other_survivors ) then
1826: LD_STRING other_survivors
1828: PPUSH
1829: CALL_OW 29
1833: IFFALSE 1850
// lidi_other_surv = CreateCharacterSet ( other_survivors ) else
1835: LD_ADDR_EXP 9
1839: PUSH
1840: LD_STRING other_survivors
1842: PPUSH
1843: CALL_OW 31
1847: ST_TO_ADDR
1848: GO 1857
// lidi_other_surv = [ ] ;
1850: LD_ADDR_EXP 9
1854: PUSH
1855: EMPTY
1856: ST_TO_ADDR
// if CheckCharacterSet ( otherWithJMM ) then
1857: LD_STRING otherWithJMM
1859: PPUSH
1860: CALL_OW 29
1864: IFFALSE 1881
// lidi_with_JMM = CreateCharacterSet ( otherWithJMM ) else
1866: LD_ADDR_EXP 10
1870: PUSH
1871: LD_STRING otherWithJMM
1873: PPUSH
1874: CALL_OW 31
1878: ST_TO_ADDR
1879: GO 1888
// lidi_with_JMM = [ ] ;
1881: LD_ADDR_EXP 10
1885: PUSH
1886: EMPTY
1887: ST_TO_ADDR
// if TestVariable ( Stoupa9_siberit ) then
1888: LD_STRING Stoupa9_siberit
1890: PPUSH
1891: CALL_OW 27
1895: IFFALSE 1915
// MNOZSTVI_SIBERITU = LoadVariable ( Stoupa9_siberit , 200 ) else
1897: LD_ADDR_EXP 84
1901: PUSH
1902: LD_STRING Stoupa9_siberit
1904: PPUSH
1905: LD_INT 200
1907: PPUSH
1908: CALL_OW 30
1912: ST_TO_ADDR
1913: GO 1923
// MNOZSTVI_SIBERITU = 200 ;
1915: LD_ADDR_EXP 84
1919: PUSH
1920: LD_INT 200
1922: ST_TO_ADDR
// CYRL := LoadVariable ( CyrusLoc , 6 ) ;
1923: LD_ADDR_EXP 22
1927: PUSH
1928: LD_STRING CyrusLoc
1930: PPUSH
1931: LD_INT 6
1933: PPUSH
1934: CALL_OW 30
1938: ST_TO_ADDR
// end ; end_of_file
1939: LD_VAR 0 1
1943: RET
// export CREATOVANI_RUSKEHO_KONVOJE_LIST ; export CREATE_RUSKY_ATTACK1_LIST ; export CREATE_VOJACI_LIST ; export CREATE_2_NEW_ATTACK_LIST ; export CREATE_3_NEW_ATTACK_LIST ; export CREATE_BAZOOKA_ATTACK_LIST ; export RUSKY_UTOK_0_LIST ; export RUSSIAN_AFTER_END_ATTACK_LIST1 ; export RUSSIAN_AFTER_END_ATTACK_LIST2 ; export RUSSIAN_AFTER_END_ATTACK_LIST_FINAL ; export MECHANICI_NAVIC ; export CYRL ; export Amici_na_zacatku ; var ah , av ; var zo ; var pom ; var Missing ; var odebrano ; var osur ; export lidi_other ; export function prepare_human ( sex , clas , level , name ) ; begin
1944: LD_INT 0
1946: PPUSH
// PrepareHuman ( sex , clas , level ) ;
1947: LD_VAR 0 1
1951: PPUSH
1952: LD_VAR 0 2
1956: PPUSH
1957: LD_VAR 0 3
1961: PPUSH
1962: CALL_OW 380
// hc_name :=  ;
1966: LD_ADDR_OWVAR 26
1970: PUSH
1971: LD_STRING 
1973: ST_TO_ADDR
// end ;
1974: LD_VAR 0 5
1978: RET
// export function nacti_osobu ( ident ) ; begin
1979: LD_INT 0
1981: PPUSH
// if CheckCharacterSet ( ident ) then
1982: LD_VAR 0 1
1986: PPUSH
1987: CALL_OW 29
1991: IFFALSE 2010
// result := CreateCharacter ( ident ) else
1993: LD_ADDR_VAR 0 2
1997: PUSH
1998: LD_VAR 0 1
2002: PPUSH
2003: CALL_OW 34
2007: ST_TO_ADDR
2008: GO 2018
// result := 0 ;
2010: LD_ADDR_VAR 0 2
2014: PUSH
2015: LD_INT 0
2017: ST_TO_ADDR
// end ;
2018: LD_VAR 0 2
2022: RET
// export function create_arabi ; begin
2023: LD_INT 0
2025: PPUSH
// InitUc ;
2026: CALL_OW 18
// InitHc ;
2030: CALL_OW 19
// InitVc ;
2034: CALL_OW 20
// uc_side := Arabi ;
2038: LD_ADDR_OWVAR 20
2042: PUSH
2043: LD_EXP 1
2047: ST_TO_ADDR
// uc_nation := nation_arabian ;
2048: LD_ADDR_OWVAR 21
2052: PUSH
2053: LD_INT 2
2055: ST_TO_ADDR
// uc_direction := 4 ;
2056: LD_ADDR_OWVAR 24
2060: PUSH
2061: LD_INT 4
2063: ST_TO_ADDR
// PlaceUnitXY ( Dietrich , 78 , 23 , false ) ;
2064: LD_EXP 25
2068: PPUSH
2069: LD_INT 78
2071: PPUSH
2072: LD_INT 23
2074: PPUSH
2075: LD_INT 0
2077: PPUSH
2078: CALL_OW 48
// prepare_human ( sex_female , class_scientistic , 6 , Lucie Sebel ) ;
2082: LD_INT 2
2084: PPUSH
2085: LD_INT 4
2087: PPUSH
2088: LD_INT 6
2090: PPUSH
2091: LD_STRING Lucie Sebel
2093: PPUSH
2094: CALL 1944 0 4
// hc_skills = [ 2 , 3 , 1 , 5 ] ;
2098: LD_ADDR_OWVAR 31
2102: PUSH
2103: LD_INT 2
2105: PUSH
2106: LD_INT 3
2108: PUSH
2109: LD_INT 1
2111: PUSH
2112: LD_INT 5
2114: PUSH
2115: EMPTY
2116: LIST
2117: LIST
2118: LIST
2119: LIST
2120: ST_TO_ADDR
// ah = CreateHuman ;
2121: LD_ADDR_LOC 5
2125: PUSH
2126: CALL_OW 44
2130: ST_TO_ADDR
// LS = ah ;
2131: LD_ADDR_EXP 26
2135: PUSH
2136: LD_LOC 5
2140: ST_TO_ADDR
// PlaceUnitXY ( LS , 76 , 20 , false ) ;
2141: LD_EXP 26
2145: PPUSH
2146: LD_INT 76
2148: PPUSH
2149: LD_INT 20
2151: PPUSH
2152: LD_INT 0
2154: PPUSH
2155: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 5 , Majdat Halabi ) ;
2159: LD_INT 1
2161: PPUSH
2162: LD_INT 2
2164: PPUSH
2165: LD_INT 5
2167: PPUSH
2168: LD_STRING Majdat Halabi
2170: PPUSH
2171: CALL 1944 0 4
// hc_skills = [ 4 , 3 , 1 , 4 ] ;
2175: LD_ADDR_OWVAR 31
2179: PUSH
2180: LD_INT 4
2182: PUSH
2183: LD_INT 3
2185: PUSH
2186: LD_INT 1
2188: PUSH
2189: LD_INT 4
2191: PUSH
2192: EMPTY
2193: LIST
2194: LIST
2195: LIST
2196: LIST
2197: ST_TO_ADDR
// ah = CreateHuman ;
2198: LD_ADDR_LOC 5
2202: PUSH
2203: CALL_OW 44
2207: ST_TO_ADDR
// PlaceUnitXY ( ah , 77 , 20 , false ) ;
2208: LD_LOC 5
2212: PPUSH
2213: LD_INT 77
2215: PPUSH
2216: LD_INT 20
2218: PPUSH
2219: LD_INT 0
2221: PPUSH
2222: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 5 , Bassam Hamshu ) ;
2226: LD_INT 1
2228: PPUSH
2229: LD_INT 2
2231: PPUSH
2232: LD_INT 5
2234: PPUSH
2235: LD_STRING Bassam Hamshu
2237: PPUSH
2238: CALL 1944 0 4
// hc_skills = [ 4 , 3 , 0 , 4 ] ;
2242: LD_ADDR_OWVAR 31
2246: PUSH
2247: LD_INT 4
2249: PUSH
2250: LD_INT 3
2252: PUSH
2253: LD_INT 0
2255: PUSH
2256: LD_INT 4
2258: PUSH
2259: EMPTY
2260: LIST
2261: LIST
2262: LIST
2263: LIST
2264: ST_TO_ADDR
// ah = CreateHuman ;
2265: LD_ADDR_LOC 5
2269: PUSH
2270: CALL_OW 44
2274: ST_TO_ADDR
// PlaceUnitXY ( ah , 75 , 21 , false ) ;
2275: LD_LOC 5
2279: PPUSH
2280: LD_INT 75
2282: PPUSH
2283: LD_INT 21
2285: PPUSH
2286: LD_INT 0
2288: PPUSH
2289: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 4 ,  ) ;
2293: LD_INT 1
2295: PPUSH
2296: LD_INT 2
2298: PPUSH
2299: LD_INT 4
2301: PPUSH
2302: LD_STRING 
2304: PPUSH
2305: CALL 1944 0 4
// hc_skills = [ 3 , 2 , 2 , 1 ] ;
2309: LD_ADDR_OWVAR 31
2313: PUSH
2314: LD_INT 3
2316: PUSH
2317: LD_INT 2
2319: PUSH
2320: LD_INT 2
2322: PUSH
2323: LD_INT 1
2325: PUSH
2326: EMPTY
2327: LIST
2328: LIST
2329: LIST
2330: LIST
2331: ST_TO_ADDR
// ah = CreateHuman ;
2332: LD_ADDR_LOC 5
2336: PUSH
2337: CALL_OW 44
2341: ST_TO_ADDR
// PlaceUnitXY ( ah , 67 , 19 , false ) ;
2342: LD_LOC 5
2346: PPUSH
2347: LD_INT 67
2349: PPUSH
2350: LD_INT 19
2352: PPUSH
2353: LD_INT 0
2355: PPUSH
2356: CALL_OW 48
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
2360: LD_INT 1
2362: PPUSH
2363: LD_INT 1
2365: PPUSH
2366: LD_EXP 59
2370: PUSH
2371: LD_OWVAR 67
2375: ARRAY
2376: PPUSH
2377: LD_STRING 
2379: PPUSH
2380: CALL 1944 0 4
// tapkal = CreateHuman ;
2384: LD_ADDR_EXP 27
2388: PUSH
2389: CALL_OW 44
2393: ST_TO_ADDR
// PlaceUnitXYR ( tapkal , 73 , 20 , 5 , false ) ;
2394: LD_EXP 27
2398: PPUSH
2399: LD_INT 73
2401: PPUSH
2402: LD_INT 20
2404: PPUSH
2405: LD_INT 5
2407: PPUSH
2408: LD_INT 0
2410: PPUSH
2411: CALL_OW 50
// end ;
2415: LD_VAR 0 1
2419: RET
// export function create_am_vedci ; var vojaci ; var i ; var lidi_na_vyber_1 ; var lidi_na_vyber_2 ; begin
2420: LD_INT 0
2422: PPUSH
2423: PPUSH
2424: PPUSH
2425: PPUSH
2426: PPUSH
// Missing := 0 ;
2427: LD_ADDR_LOC 9
2431: PUSH
2432: LD_INT 0
2434: ST_TO_ADDR
// uc_side := You2 ;
2435: LD_ADDR_OWVAR 20
2439: PUSH
2440: LD_EXP 6
2444: ST_TO_ADDR
// uc_nation := nation_american ;
2445: LD_ADDR_OWVAR 21
2449: PUSH
2450: LD_INT 1
2452: ST_TO_ADDR
// uc_direction := 4 ;
2453: LD_ADDR_OWVAR 24
2457: PUSH
2458: LD_INT 4
2460: ST_TO_ADDR
// Amici_na_zacatku = [ ] ;
2461: LD_ADDR_EXP 23
2465: PUSH
2466: EMPTY
2467: ST_TO_ADDR
// if Cyrus = 0 or CYRL <> 6 then
2468: LD_EXP 45
2472: PUSH
2473: LD_INT 0
2475: EQUAL
2476: PUSH
2477: LD_EXP 22
2481: PUSH
2482: LD_INT 6
2484: NONEQUAL
2485: OR
2486: IFFALSE 2504
// Missing := Missing + 10 else
2488: LD_ADDR_LOC 9
2492: PUSH
2493: LD_LOC 9
2497: PUSH
2498: LD_INT 10
2500: PLUS
2501: ST_TO_ADDR
2502: GO 2561
// begin PlaceUnitArea ( Cyrus , EAmici , false ) ;
2504: LD_EXP 45
2508: PPUSH
2509: LD_INT 43
2511: PPUSH
2512: LD_INT 0
2514: PPUSH
2515: CALL_OW 49
// SetClass ( Cyrus , class_soldier ) ;
2519: LD_EXP 45
2523: PPUSH
2524: LD_INT 1
2526: PPUSH
2527: CALL_OW 336
// SetSide ( Cyrus , You2 ) ;
2531: LD_EXP 45
2535: PPUSH
2536: LD_EXP 6
2540: PPUSH
2541: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Cyrus ;
2545: LD_ADDR_EXP 23
2549: PUSH
2550: LD_EXP 23
2554: PUSH
2555: LD_EXP 45
2559: ADD
2560: ST_TO_ADDR
// end ; if Khattam = 0 then
2561: LD_EXP 43
2565: PUSH
2566: LD_INT 0
2568: EQUAL
2569: IFFALSE 2587
// Missing := Missing + 10 else
2571: LD_ADDR_LOC 9
2575: PUSH
2576: LD_LOC 9
2580: PUSH
2581: LD_INT 10
2583: PLUS
2584: ST_TO_ADDR
2585: GO 2644
// begin PlaceUnitArea ( Khattam , EAmici , false ) ;
2587: LD_EXP 43
2591: PPUSH
2592: LD_INT 43
2594: PPUSH
2595: LD_INT 0
2597: PPUSH
2598: CALL_OW 49
// SetClass ( Khattam , class_soldier ) ;
2602: LD_EXP 43
2606: PPUSH
2607: LD_INT 1
2609: PPUSH
2610: CALL_OW 336
// SetSide ( Khattam , You2 ) ;
2614: LD_EXP 43
2618: PPUSH
2619: LD_EXP 6
2623: PPUSH
2624: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Khattam ;
2628: LD_ADDR_EXP 23
2632: PUSH
2633: LD_EXP 23
2637: PUSH
2638: LD_EXP 43
2642: ADD
2643: ST_TO_ADDR
// end ; PlaceUnitArea ( Simms , EAmici , false ) ;
2644: LD_EXP 44
2648: PPUSH
2649: LD_INT 43
2651: PPUSH
2652: LD_INT 0
2654: PPUSH
2655: CALL_OW 49
// SetSide ( Simms , You2 ) ;
2659: LD_EXP 44
2663: PPUSH
2664: LD_EXP 6
2668: PPUSH
2669: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Simms ;
2673: LD_ADDR_EXP 23
2677: PUSH
2678: LD_EXP 23
2682: PUSH
2683: LD_EXP 44
2687: ADD
2688: ST_TO_ADDR
// if Joan_F = 0 then
2689: LD_EXP 41
2693: PUSH
2694: LD_INT 0
2696: EQUAL
2697: IFFALSE 2715
// Missing := Missing + 1 else
2699: LD_ADDR_LOC 9
2703: PUSH
2704: LD_LOC 9
2708: PUSH
2709: LD_INT 1
2711: PLUS
2712: ST_TO_ADDR
2713: GO 2772
// begin PlaceUnitArea ( Joan_F , EAmici , false ) ;
2715: LD_EXP 41
2719: PPUSH
2720: LD_INT 43
2722: PPUSH
2723: LD_INT 0
2725: PPUSH
2726: CALL_OW 49
// SetClass ( Joan_F , class_scientistic ) ;
2730: LD_EXP 41
2734: PPUSH
2735: LD_INT 4
2737: PPUSH
2738: CALL_OW 336
// SetSide ( Joan_F , You2 ) ;
2742: LD_EXP 41
2746: PPUSH
2747: LD_EXP 6
2751: PPUSH
2752: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Joan_F ;
2756: LD_ADDR_EXP 23
2760: PUSH
2761: LD_EXP 23
2765: PUSH
2766: LD_EXP 41
2770: ADD
2771: ST_TO_ADDR
// end ; if Denis = 0 then
2772: LD_EXP 46
2776: PUSH
2777: LD_INT 0
2779: EQUAL
2780: IFFALSE 2798
// Missing = Missing + 1 else
2782: LD_ADDR_LOC 9
2786: PUSH
2787: LD_LOC 9
2791: PUSH
2792: LD_INT 1
2794: PLUS
2795: ST_TO_ADDR
2796: GO 2855
// begin SetClass ( Denis , class_scientistic ) ;
2798: LD_EXP 46
2802: PPUSH
2803: LD_INT 4
2805: PPUSH
2806: CALL_OW 336
// SetSide ( Denis , You2 ) ;
2810: LD_EXP 46
2814: PPUSH
2815: LD_EXP 6
2819: PPUSH
2820: CALL_OW 235
// PlaceUnitArea ( Denis , EAmici , false ) ;
2824: LD_EXP 46
2828: PPUSH
2829: LD_INT 43
2831: PPUSH
2832: LD_INT 0
2834: PPUSH
2835: CALL_OW 49
// Amici_na_zacatku = Amici_na_zacatku ^ Denis ;
2839: LD_ADDR_EXP 23
2843: PUSH
2844: LD_EXP 23
2848: PUSH
2849: LD_EXP 46
2853: ADD
2854: ST_TO_ADDR
// end ; vojaci = [ ] ;
2855: LD_ADDR_VAR 0 2
2859: PUSH
2860: EMPTY
2861: ST_TO_ADDR
// for i in lidi_with_JMM do
2862: LD_ADDR_VAR 0 3
2866: PUSH
2867: LD_EXP 10
2871: PUSH
2872: FOR_IN
2873: IFFALSE 2911
// if GetSkill ( i , skill_combat ) >= 4 then
2875: LD_VAR 0 3
2879: PPUSH
2880: LD_INT 1
2882: PPUSH
2883: CALL_OW 259
2887: PUSH
2888: LD_INT 4
2890: GREATEREQUAL
2891: IFFALSE 2909
// vojaci = vojaci ^ i ;
2893: LD_ADDR_VAR 0 2
2897: PUSH
2898: LD_VAR 0 2
2902: PUSH
2903: LD_VAR 0 3
2907: ADD
2908: ST_TO_ADDR
2909: GO 2872
2911: POP
2912: POP
// if vojaci < 2 then
2913: LD_VAR 0 2
2917: PUSH
2918: LD_INT 2
2920: LESS
2921: IFFALSE 2974
// for i in lidi_other_surv do
2923: LD_ADDR_VAR 0 3
2927: PUSH
2928: LD_EXP 9
2932: PUSH
2933: FOR_IN
2934: IFFALSE 2972
// if GetSkill ( i , skill_combat ) >= 4 then
2936: LD_VAR 0 3
2940: PPUSH
2941: LD_INT 1
2943: PPUSH
2944: CALL_OW 259
2948: PUSH
2949: LD_INT 4
2951: GREATEREQUAL
2952: IFFALSE 2970
// vojaci = vojaci ^ i ;
2954: LD_ADDR_VAR 0 2
2958: PUSH
2959: LD_VAR 0 2
2963: PUSH
2964: LD_VAR 0 3
2968: ADD
2969: ST_TO_ADDR
2970: GO 2933
2972: POP
2973: POP
// odebrano = [ ] ;
2974: LD_ADDR_LOC 10
2978: PUSH
2979: EMPTY
2980: ST_TO_ADDR
// while Missing >= 10 do
2981: LD_LOC 9
2985: PUSH
2986: LD_INT 10
2988: GREATEREQUAL
2989: IFFALSE 3132
// begin if vojaci = 0 then
2991: LD_VAR 0 2
2995: PUSH
2996: LD_INT 0
2998: EQUAL
2999: IFFALSE 3029
// begin prepare_human ( sex_male , class_soldier , 5 ,  ) ;
3001: LD_INT 1
3003: PPUSH
3004: LD_INT 1
3006: PPUSH
3007: LD_INT 5
3009: PPUSH
3010: LD_STRING 
3012: PPUSH
3013: CALL 1944 0 4
// ah = CreateHuman ;
3017: LD_ADDR_LOC 5
3021: PUSH
3022: CALL_OW 44
3026: ST_TO_ADDR
// end else
3027: GO 3101
// begin ah = vojaci [ 1 ] ;
3029: LD_ADDR_LOC 5
3033: PUSH
3034: LD_VAR 0 2
3038: PUSH
3039: LD_INT 1
3041: ARRAY
3042: ST_TO_ADDR
// vojaci = vojaci diff ah ;
3043: LD_ADDR_VAR 0 2
3047: PUSH
3048: LD_VAR 0 2
3052: PUSH
3053: LD_LOC 5
3057: DIFF
3058: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
3059: LD_ADDR_LOC 10
3063: PUSH
3064: LD_LOC 10
3068: PUSH
3069: LD_LOC 5
3073: ADD
3074: ST_TO_ADDR
// SetClass ( ah , class_soldier ) ;
3075: LD_LOC 5
3079: PPUSH
3080: LD_INT 1
3082: PPUSH
3083: CALL_OW 336
// SetSide ( ah , You2 ) ;
3087: LD_LOC 5
3091: PPUSH
3092: LD_EXP 6
3096: PPUSH
3097: CALL_OW 235
// end ; PlaceUnitArea ( ah , EAmici , false ) ;
3101: LD_LOC 5
3105: PPUSH
3106: LD_INT 43
3108: PPUSH
3109: LD_INT 0
3111: PPUSH
3112: CALL_OW 49
// Missing := Missing - 10 ;
3116: LD_ADDR_LOC 9
3120: PUSH
3121: LD_LOC 9
3125: PUSH
3126: LD_INT 10
3128: MINUS
3129: ST_TO_ADDR
// end ;
3130: GO 2981
// Amici_na_zacatku = Amici_na_zacatku ^ odebrano ;
3132: LD_ADDR_EXP 23
3136: PUSH
3137: LD_EXP 23
3141: PUSH
3142: LD_LOC 10
3146: ADD
3147: ST_TO_ADDR
// lidi_na_vyber_1 = lidi_with_JMM diff odebrano ;
3148: LD_ADDR_VAR 0 4
3152: PUSH
3153: LD_EXP 10
3157: PUSH
3158: LD_LOC 10
3162: DIFF
3163: ST_TO_ADDR
// lidi_na_vyber_2 = lidi_other_surv diff odebrano ;
3164: LD_ADDR_VAR 0 5
3168: PUSH
3169: LD_EXP 9
3173: PUSH
3174: LD_LOC 10
3178: DIFF
3179: ST_TO_ADDR
// vojaci = [ ] ;
3180: LD_ADDR_VAR 0 2
3184: PUSH
3185: EMPTY
3186: ST_TO_ADDR
// for i in lidi_na_vyber_1 do
3187: LD_ADDR_VAR 0 3
3191: PUSH
3192: LD_VAR 0 4
3196: PUSH
3197: FOR_IN
3198: IFFALSE 3236
// if GetSkill ( i , skill_scientistic ) >= 4 then
3200: LD_VAR 0 3
3204: PPUSH
3205: LD_INT 4
3207: PPUSH
3208: CALL_OW 259
3212: PUSH
3213: LD_INT 4
3215: GREATEREQUAL
3216: IFFALSE 3234
// vojaci = vojaci ^ i ;
3218: LD_ADDR_VAR 0 2
3222: PUSH
3223: LD_VAR 0 2
3227: PUSH
3228: LD_VAR 0 3
3232: ADD
3233: ST_TO_ADDR
3234: GO 3197
3236: POP
3237: POP
// if vojaci = 0 then
3238: LD_VAR 0 2
3242: PUSH
3243: LD_INT 0
3245: EQUAL
3246: IFFALSE 3299
// for i in lidi_na_vyber_2 do
3248: LD_ADDR_VAR 0 3
3252: PUSH
3253: LD_VAR 0 5
3257: PUSH
3258: FOR_IN
3259: IFFALSE 3297
// if GetSkill ( i , skill_scientistic ) >= 4 then
3261: LD_VAR 0 3
3265: PPUSH
3266: LD_INT 4
3268: PPUSH
3269: CALL_OW 259
3273: PUSH
3274: LD_INT 4
3276: GREATEREQUAL
3277: IFFALSE 3295
// vojaci = vojaci ^ i ;
3279: LD_ADDR_VAR 0 2
3283: PUSH
3284: LD_VAR 0 2
3288: PUSH
3289: LD_VAR 0 3
3293: ADD
3294: ST_TO_ADDR
3295: GO 3258
3297: POP
3298: POP
// while Missing >= 1 do
3299: LD_LOC 9
3303: PUSH
3304: LD_INT 1
3306: GREATEREQUAL
3307: IFFALSE 3450
// begin if vojaci = 0 then
3309: LD_VAR 0 2
3313: PUSH
3314: LD_INT 0
3316: EQUAL
3317: IFFALSE 3347
// begin prepare_human ( sex_male , class_scientistic , 5 ,  ) ;
3319: LD_INT 1
3321: PPUSH
3322: LD_INT 4
3324: PPUSH
3325: LD_INT 5
3327: PPUSH
3328: LD_STRING 
3330: PPUSH
3331: CALL 1944 0 4
// ah = CreateHuman ;
3335: LD_ADDR_LOC 5
3339: PUSH
3340: CALL_OW 44
3344: ST_TO_ADDR
// end else
3345: GO 3419
// begin ah = vojaci [ 1 ] ;
3347: LD_ADDR_LOC 5
3351: PUSH
3352: LD_VAR 0 2
3356: PUSH
3357: LD_INT 1
3359: ARRAY
3360: ST_TO_ADDR
// vojaci = vojaci diff ah ;
3361: LD_ADDR_VAR 0 2
3365: PUSH
3366: LD_VAR 0 2
3370: PUSH
3371: LD_LOC 5
3375: DIFF
3376: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
3377: LD_ADDR_LOC 10
3381: PUSH
3382: LD_LOC 10
3386: PUSH
3387: LD_LOC 5
3391: ADD
3392: ST_TO_ADDR
// SetClass ( ah , class_scientistic ) ;
3393: LD_LOC 5
3397: PPUSH
3398: LD_INT 4
3400: PPUSH
3401: CALL_OW 336
// SetSide ( ah , You2 ) ;
3405: LD_LOC 5
3409: PPUSH
3410: LD_EXP 6
3414: PPUSH
3415: CALL_OW 235
// end ; PlaceUnitArea ( ah , EAmici , false ) ;
3419: LD_LOC 5
3423: PPUSH
3424: LD_INT 43
3426: PPUSH
3427: LD_INT 0
3429: PPUSH
3430: CALL_OW 49
// Missing := Missing - 1 ;
3434: LD_ADDR_LOC 9
3438: PUSH
3439: LD_LOC 9
3443: PUSH
3444: LD_INT 1
3446: MINUS
3447: ST_TO_ADDR
// end ;
3448: GO 3299
// Amici_na_zacatku = Amici_na_zacatku ^ odebrano ;
3450: LD_ADDR_EXP 23
3454: PUSH
3455: LD_EXP 23
3459: PUSH
3460: LD_LOC 10
3464: ADD
3465: ST_TO_ADDR
// Amici_ar = Amici_na_zacatku ;
3466: LD_ADDR_EXP 32
3470: PUSH
3471: LD_EXP 23
3475: ST_TO_ADDR
// RevealFogArea ( Arabi , RFA1 ) ;
3476: LD_EXP 1
3480: PPUSH
3481: LD_INT 25
3483: PPUSH
3484: CALL_OW 332
// end ;
3488: LD_VAR 0 1
3492: RET
// export function create_amici1 ; var lidi_vyber ; var i ; begin
3493: LD_INT 0
3495: PPUSH
3496: PPUSH
3497: PPUSH
// uc_side := You ;
3498: LD_ADDR_OWVAR 20
3502: PUSH
3503: LD_EXP 3
3507: ST_TO_ADDR
// uc_nation := nation_american ;
3508: LD_ADDR_OWVAR 21
3512: PUSH
3513: LD_INT 1
3515: ST_TO_ADDR
// uc_direction := 1 ;
3516: LD_ADDR_OWVAR 24
3520: PUSH
3521: LD_INT 1
3523: ST_TO_ADDR
// vc_chassis := us_medium_tracked ;
3524: LD_ADDR_OWVAR 37
3528: PUSH
3529: LD_INT 3
3531: ST_TO_ADDR
// vc_control := control_manual ;
3532: LD_ADDR_OWVAR 38
3536: PUSH
3537: LD_INT 1
3539: ST_TO_ADDR
// vc_engine := engine_combustion ;
3540: LD_ADDR_OWVAR 39
3544: PUSH
3545: LD_INT 1
3547: ST_TO_ADDR
// vc_weapon := us_cargo_bay ;
3548: LD_ADDR_OWVAR 40
3552: PUSH
3553: LD_INT 12
3555: ST_TO_ADDR
// av = CreateVehicle ;
3556: LD_ADDR_LOC 6
3560: PUSH
3561: CALL_OW 45
3565: ST_TO_ADDR
// SetClass ( JMM , class_soldier ) ;
3566: LD_EXP 40
3570: PPUSH
3571: LD_INT 1
3573: PPUSH
3574: CALL_OW 336
// SetSide ( JMM , You ) ;
3578: LD_EXP 40
3582: PPUSH
3583: LD_EXP 3
3587: PPUSH
3588: CALL_OW 235
// PlaceHumanInUnit ( JMM , av ) ;
3592: LD_EXP 40
3596: PPUSH
3597: LD_LOC 6
3601: PPUSH
3602: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
3606: LD_LOC 6
3610: PPUSH
3611: LD_INT 3
3613: PPUSH
3614: LD_INT 0
3616: PPUSH
3617: CALL_OW 49
// AddCargo ( av , mat_oil , 20 ) ;
3621: LD_LOC 6
3625: PPUSH
3626: LD_INT 2
3628: PPUSH
3629: LD_INT 20
3631: PPUSH
3632: CALL_OW 291
// AddCargo ( av , mat_cans , 80 ) ;
3636: LD_LOC 6
3640: PPUSH
3641: LD_INT 1
3643: PPUSH
3644: LD_INT 80
3646: PPUSH
3647: CALL_OW 291
// Amici_na_zacatku = Amici_na_zacatku ^ JMM ;
3651: LD_ADDR_EXP 23
3655: PUSH
3656: LD_EXP 23
3660: PUSH
3661: LD_EXP 40
3665: ADD
3666: ST_TO_ADDR
// av = CreateVehicle ;
3667: LD_ADDR_LOC 6
3671: PUSH
3672: CALL_OW 45
3676: ST_TO_ADDR
// SetClass ( Gary , class_soldier ) ;
3677: LD_EXP 42
3681: PPUSH
3682: LD_INT 1
3684: PPUSH
3685: CALL_OW 336
// SetSide ( Gary , You ) ;
3689: LD_EXP 42
3693: PPUSH
3694: LD_EXP 3
3698: PPUSH
3699: CALL_OW 235
// PlaceHumanInUnit ( Gary , av ) ;
3703: LD_EXP 42
3707: PPUSH
3708: LD_LOC 6
3712: PPUSH
3713: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
3717: LD_LOC 6
3721: PPUSH
3722: LD_INT 3
3724: PPUSH
3725: LD_INT 0
3727: PPUSH
3728: CALL_OW 49
// AddCargo ( av , mat_oil , 10 ) ;
3732: LD_LOC 6
3736: PPUSH
3737: LD_INT 2
3739: PPUSH
3740: LD_INT 10
3742: PPUSH
3743: CALL_OW 291
// AddCargo ( av , mat_cans , 90 ) ;
3747: LD_LOC 6
3751: PPUSH
3752: LD_INT 1
3754: PPUSH
3755: LD_INT 90
3757: PPUSH
3758: CALL_OW 291
// lidi_vyber = [ ] ;
3762: LD_ADDR_VAR 0 2
3766: PUSH
3767: EMPTY
3768: ST_TO_ADDR
// for i in lidi_with_JMM diff Amici_na_zacatku do
3769: LD_ADDR_VAR 0 3
3773: PUSH
3774: LD_EXP 10
3778: PUSH
3779: LD_EXP 23
3783: DIFF
3784: PUSH
3785: FOR_IN
3786: IFFALSE 3824
// if GetSkill ( i , skill_engineering ) > 3 then
3788: LD_VAR 0 3
3792: PPUSH
3793: LD_INT 2
3795: PPUSH
3796: CALL_OW 259
3800: PUSH
3801: LD_INT 3
3803: GREATER
3804: IFFALSE 3822
// lidi_vyber = lidi_vyber ^ i ;
3806: LD_ADDR_VAR 0 2
3810: PUSH
3811: LD_VAR 0 2
3815: PUSH
3816: LD_VAR 0 3
3820: ADD
3821: ST_TO_ADDR
3822: GO 3785
3824: POP
3825: POP
// if lidi_vyber = 0 then
3826: LD_VAR 0 2
3830: PUSH
3831: LD_INT 0
3833: EQUAL
3834: IFFALSE 3893
// for i in lidi_other_surv diff Amici_na_zacatku do
3836: LD_ADDR_VAR 0 3
3840: PUSH
3841: LD_EXP 9
3845: PUSH
3846: LD_EXP 23
3850: DIFF
3851: PUSH
3852: FOR_IN
3853: IFFALSE 3891
// if GetSkill ( i , skill_engineering ) > 3 then
3855: LD_VAR 0 3
3859: PPUSH
3860: LD_INT 2
3862: PPUSH
3863: CALL_OW 259
3867: PUSH
3868: LD_INT 3
3870: GREATER
3871: IFFALSE 3889
// lidi_vyber = lidi_vyber ^ i ;
3873: LD_ADDR_VAR 0 2
3877: PUSH
3878: LD_VAR 0 2
3882: PUSH
3883: LD_VAR 0 3
3887: ADD
3888: ST_TO_ADDR
3889: GO 3852
3891: POP
3892: POP
// if lidi_vyber = 0 then
3893: LD_VAR 0 2
3897: PUSH
3898: LD_INT 0
3900: EQUAL
3901: IFFALSE 3931
// begin prepare_human ( sex_male , class_engineer , 5 , Johny Muscle ) ;
3903: LD_INT 1
3905: PPUSH
3906: LD_INT 2
3908: PPUSH
3909: LD_INT 5
3911: PPUSH
3912: LD_STRING Johny Muscle
3914: PPUSH
3915: CALL 1944 0 4
// pom = CreateHuman ;
3919: LD_ADDR_LOC 8
3923: PUSH
3924: CALL_OW 44
3928: ST_TO_ADDR
// end else
3929: GO 3999
// begin ah = lidi_vyber [ 1 ] ;
3931: LD_ADDR_LOC 5
3935: PUSH
3936: LD_VAR 0 2
3940: PUSH
3941: LD_INT 1
3943: ARRAY
3944: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
3945: LD_ADDR_VAR 0 2
3949: PUSH
3950: LD_VAR 0 2
3954: PUSH
3955: LD_LOC 5
3959: DIFF
3960: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
3961: LD_ADDR_LOC 10
3965: PUSH
3966: LD_LOC 10
3970: PUSH
3971: LD_LOC 5
3975: ADD
3976: ST_TO_ADDR
// SetClass ( ah , class_engineer ) ;
3977: LD_LOC 5
3981: PPUSH
3982: LD_INT 2
3984: PPUSH
3985: CALL_OW 336
// pom = ah ;
3989: LD_ADDR_LOC 8
3993: PUSH
3994: LD_LOC 5
3998: ST_TO_ADDR
// end ; av = CreateVehicle ;
3999: LD_ADDR_LOC 6
4003: PUSH
4004: CALL_OW 45
4008: ST_TO_ADDR
// PlaceHumanInUnit ( pom , av ) ;
4009: LD_LOC 8
4013: PPUSH
4014: LD_LOC 6
4018: PPUSH
4019: CALL_OW 52
// Amici_na_zacatku = Amici_na_zacatku ^ pom ;
4023: LD_ADDR_EXP 23
4027: PUSH
4028: LD_EXP 23
4032: PUSH
4033: LD_LOC 8
4037: ADD
4038: ST_TO_ADDR
// PlaceUnitArea ( av , EnterAM , false ) ;
4039: LD_LOC 6
4043: PPUSH
4044: LD_INT 3
4046: PPUSH
4047: LD_INT 0
4049: PPUSH
4050: CALL_OW 49
// if MNOZSTVI_SIBERITU >= 200 then
4054: LD_EXP 84
4058: PUSH
4059: LD_INT 200
4061: GREATEREQUAL
4062: IFFALSE 4081
// AddCargo ( av , mat_siberit , 100 ) else
4064: LD_LOC 6
4068: PPUSH
4069: LD_INT 3
4071: PPUSH
4072: LD_INT 100
4074: PPUSH
4075: CALL_OW 291
4079: GO 4129
// if MNOZSTVI_SIBERITU <= 100 then
4081: LD_EXP 84
4085: PUSH
4086: LD_INT 100
4088: LESSEQUAL
4089: IFFALSE 4108
// AddCargo ( av , mat_cans , 30 ) else
4091: LD_LOC 6
4095: PPUSH
4096: LD_INT 1
4098: PPUSH
4099: LD_INT 30
4101: PPUSH
4102: CALL_OW 291
4106: GO 4129
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU - 100 ) ;
4108: LD_LOC 6
4112: PPUSH
4113: LD_INT 3
4115: PPUSH
4116: LD_EXP 84
4120: PUSH
4121: LD_INT 100
4123: MINUS
4124: PPUSH
4125: CALL_OW 291
// lidi_vyber = [ ] ;
4129: LD_ADDR_VAR 0 2
4133: PUSH
4134: EMPTY
4135: ST_TO_ADDR
// for i in lidi_with_JMM diff odebrano do
4136: LD_ADDR_VAR 0 3
4140: PUSH
4141: LD_EXP 10
4145: PUSH
4146: LD_LOC 10
4150: DIFF
4151: PUSH
4152: FOR_IN
4153: IFFALSE 4191
// if GetSkill ( i , skill_mechanical ) > 3 then
4155: LD_VAR 0 3
4159: PPUSH
4160: LD_INT 3
4162: PPUSH
4163: CALL_OW 259
4167: PUSH
4168: LD_INT 3
4170: GREATER
4171: IFFALSE 4189
// lidi_vyber = lidi_vyber ^ i ;
4173: LD_ADDR_VAR 0 2
4177: PUSH
4178: LD_VAR 0 2
4182: PUSH
4183: LD_VAR 0 3
4187: ADD
4188: ST_TO_ADDR
4189: GO 4152
4191: POP
4192: POP
// if lidi_vyber < 2 then
4193: LD_VAR 0 2
4197: PUSH
4198: LD_INT 2
4200: LESS
4201: IFFALSE 4260
// for i in lidi_other_surv diff odebrano do
4203: LD_ADDR_VAR 0 3
4207: PUSH
4208: LD_EXP 9
4212: PUSH
4213: LD_LOC 10
4217: DIFF
4218: PUSH
4219: FOR_IN
4220: IFFALSE 4258
// if GetSkill ( i , skill_mechanical ) > 3 then
4222: LD_VAR 0 3
4226: PPUSH
4227: LD_INT 3
4229: PPUSH
4230: CALL_OW 259
4234: PUSH
4235: LD_INT 3
4237: GREATER
4238: IFFALSE 4256
// lidi_vyber = lidi_vyber ^ i ;
4240: LD_ADDR_VAR 0 2
4244: PUSH
4245: LD_VAR 0 2
4249: PUSH
4250: LD_VAR 0 3
4254: ADD
4255: ST_TO_ADDR
4256: GO 4219
4258: POP
4259: POP
// if lidi_vyber = 0 then
4260: LD_VAR 0 2
4264: PUSH
4265: LD_INT 0
4267: EQUAL
4268: IFFALSE 4298
// begin prepare_human ( sex_male , class_mechanic , 5 , Thomas Ezendam ) ;
4270: LD_INT 1
4272: PPUSH
4273: LD_INT 3
4275: PPUSH
4276: LD_INT 5
4278: PPUSH
4279: LD_STRING Thomas Ezendam
4281: PPUSH
4282: CALL 1944 0 4
// ah = CreateHuman ;
4286: LD_ADDR_LOC 5
4290: PUSH
4291: CALL_OW 44
4295: ST_TO_ADDR
// end else
4296: GO 4356
// begin ah = lidi_vyber [ 1 ] ;
4298: LD_ADDR_LOC 5
4302: PUSH
4303: LD_VAR 0 2
4307: PUSH
4308: LD_INT 1
4310: ARRAY
4311: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
4312: LD_ADDR_VAR 0 2
4316: PUSH
4317: LD_VAR 0 2
4321: PUSH
4322: LD_LOC 5
4326: DIFF
4327: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
4328: LD_ADDR_LOC 10
4332: PUSH
4333: LD_LOC 10
4337: PUSH
4338: LD_LOC 5
4342: ADD
4343: ST_TO_ADDR
// SetClass ( ah , class_mechanic ) ;
4344: LD_LOC 5
4348: PPUSH
4349: LD_INT 3
4351: PPUSH
4352: CALL_OW 336
// end ; Amici_na_zacatku = Amici_na_zacatku ^ ah ;
4356: LD_ADDR_EXP 23
4360: PUSH
4361: LD_EXP 23
4365: PUSH
4366: LD_LOC 5
4370: ADD
4371: ST_TO_ADDR
// av = CreateVehicle ;
4372: LD_ADDR_LOC 6
4376: PUSH
4377: CALL_OW 45
4381: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
4382: LD_LOC 5
4386: PPUSH
4387: LD_LOC 6
4391: PPUSH
4392: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
4396: LD_LOC 6
4400: PPUSH
4401: LD_INT 3
4403: PPUSH
4404: LD_INT 0
4406: PPUSH
4407: CALL_OW 49
// if MNOZSTVI_SIBERITU >= 100 then
4411: LD_EXP 84
4415: PUSH
4416: LD_INT 100
4418: GREATEREQUAL
4419: IFFALSE 4438
// AddCargo ( av , mat_siberit , 100 ) else
4421: LD_LOC 6
4425: PPUSH
4426: LD_INT 3
4428: PPUSH
4429: LD_INT 100
4431: PPUSH
4432: CALL_OW 291
4436: GO 4455
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU ) ;
4438: LD_LOC 6
4442: PPUSH
4443: LD_INT 3
4445: PPUSH
4446: LD_EXP 84
4450: PPUSH
4451: CALL_OW 291
// if MNOZSTVI_SIBERITU > 200 then
4455: LD_EXP 84
4459: PUSH
4460: LD_INT 200
4462: GREATER
4463: IFFALSE 4621
// begin if lidi_vyber = 0 then
4465: LD_VAR 0 2
4469: PUSH
4470: LD_INT 0
4472: EQUAL
4473: IFFALSE 4503
// begin prepare_human ( sex_male , class_mechanic , 5 ,  ) ;
4475: LD_INT 1
4477: PPUSH
4478: LD_INT 3
4480: PPUSH
4481: LD_INT 5
4483: PPUSH
4484: LD_STRING 
4486: PPUSH
4487: CALL 1944 0 4
// ah = CreateHuman ;
4491: LD_ADDR_LOC 5
4495: PUSH
4496: CALL_OW 44
4500: ST_TO_ADDR
// end else
4501: GO 4561
// begin ah = lidi_vyber [ 1 ] ;
4503: LD_ADDR_LOC 5
4507: PUSH
4508: LD_VAR 0 2
4512: PUSH
4513: LD_INT 1
4515: ARRAY
4516: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
4517: LD_ADDR_VAR 0 2
4521: PUSH
4522: LD_VAR 0 2
4526: PUSH
4527: LD_LOC 5
4531: DIFF
4532: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
4533: LD_ADDR_LOC 10
4537: PUSH
4538: LD_LOC 10
4542: PUSH
4543: LD_LOC 5
4547: ADD
4548: ST_TO_ADDR
// SetClass ( ah , class_mechanic ) ;
4549: LD_LOC 5
4553: PPUSH
4554: LD_INT 3
4556: PPUSH
4557: CALL_OW 336
// end ; av = CreateVehicle ;
4561: LD_ADDR_LOC 6
4565: PUSH
4566: CALL_OW 45
4570: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
4571: LD_LOC 5
4575: PPUSH
4576: LD_LOC 6
4580: PPUSH
4581: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
4585: LD_LOC 6
4589: PPUSH
4590: LD_INT 3
4592: PPUSH
4593: LD_INT 0
4595: PPUSH
4596: CALL_OW 49
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU - 200 ) ;
4600: LD_LOC 6
4604: PPUSH
4605: LD_INT 3
4607: PPUSH
4608: LD_EXP 84
4612: PUSH
4613: LD_INT 200
4615: MINUS
4616: PPUSH
4617: CALL_OW 291
// end ; Amici_na_zacatku = Amici_na_zacatku ^ ah ;
4621: LD_ADDR_EXP 23
4625: PUSH
4626: LD_EXP 23
4630: PUSH
4631: LD_LOC 5
4635: ADD
4636: ST_TO_ADDR
// if MNOZSTVI_SIBERITU > 350 then
4637: LD_EXP 84
4641: PUSH
4642: LD_INT 350
4644: GREATER
4645: IFFALSE 4654
// Msg ( ERROR: STOUPA JE IDIOT ) ;
4647: LD_STRING ERROR: STOUPA JE IDIOT
4649: PPUSH
4650: CALL_OW 100
// end ;
4654: LD_VAR 0 1
4658: RET
// export function create_konvoj_ru ( nah ) ; begin
4659: LD_INT 0
4661: PPUSH
// uc_side := Rusi ;
4662: LD_ADDR_OWVAR 20
4666: PUSH
4667: LD_EXP 2
4671: ST_TO_ADDR
// uc_nation := nation_russian ;
4672: LD_ADDR_OWVAR 21
4676: PUSH
4677: LD_INT 3
4679: ST_TO_ADDR
// uc_direction := 4 ;
4680: LD_ADDR_OWVAR 24
4684: PUSH
4685: LD_INT 4
4687: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Boris Gavrilov ) ;
4688: LD_INT 1
4690: PPUSH
4691: LD_INT 2
4693: PPUSH
4694: LD_EXP 59
4698: PUSH
4699: LD_OWVAR 67
4703: ARRAY
4704: PPUSH
4705: LD_STRING Boris Gavrilov
4707: PPUSH
4708: CALL 1944 0 4
// ah = CreateHuman ;
4712: LD_ADDR_LOC 5
4716: PUSH
4717: CALL_OW 44
4721: ST_TO_ADDR
// pom = [ ah ] ;
4722: LD_ADDR_LOC 8
4726: PUSH
4727: LD_LOC 5
4731: PUSH
4732: EMPTY
4733: LIST
4734: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] , Boris Glavacenko ) ;
4735: LD_INT 1
4737: PPUSH
4738: LD_INT 3
4740: PPUSH
4741: LD_EXP 59
4745: PUSH
4746: LD_OWVAR 67
4750: ARRAY
4751: PPUSH
4752: LD_STRING Boris Glavacenko
4754: PPUSH
4755: CALL 1944 0 4
// ah = CreateHuman ;
4759: LD_ADDR_LOC 5
4763: PUSH
4764: CALL_OW 44
4768: ST_TO_ADDR
// pom = pom ^ ah ;
4769: LD_ADDR_LOC 8
4773: PUSH
4774: LD_LOC 8
4778: PUSH
4779: LD_LOC 5
4783: ADD
4784: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Vladimir P. Scbakov ) ;
4785: LD_INT 1
4787: PPUSH
4788: LD_INT 1
4790: PPUSH
4791: LD_EXP 59
4795: PUSH
4796: LD_OWVAR 67
4800: ARRAY
4801: PPUSH
4802: LD_STRING Vladimir P. Scbakov
4804: PPUSH
4805: CALL 1944 0 4
// ah = CreateHuman ;
4809: LD_ADDR_LOC 5
4813: PUSH
4814: CALL_OW 44
4818: ST_TO_ADDR
// pom = pom ^ ah ;
4819: LD_ADDR_LOC 8
4823: PUSH
4824: LD_LOC 8
4828: PUSH
4829: LD_LOC 5
4833: ADD
4834: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Nikolaj Sutjagin ) ;
4835: LD_INT 1
4837: PPUSH
4838: LD_INT 1
4840: PPUSH
4841: LD_EXP 59
4845: PUSH
4846: LD_OWVAR 67
4850: ARRAY
4851: PPUSH
4852: LD_STRING Nikolaj Sutjagin
4854: PPUSH
4855: CALL 1944 0 4
// ah = CreateHuman ;
4859: LD_ADDR_LOC 5
4863: PUSH
4864: CALL_OW 44
4868: ST_TO_ADDR
// pom = pom ^ ah ;
4869: LD_ADDR_LOC 8
4873: PUSH
4874: LD_LOC 8
4878: PUSH
4879: LD_LOC 5
4883: ADD
4884: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] - 1 , Jevgenij Pepeljajev ) ;
4885: LD_INT 1
4887: PPUSH
4888: LD_INT 9
4890: PPUSH
4891: LD_EXP 59
4895: PUSH
4896: LD_OWVAR 67
4900: ARRAY
4901: PUSH
4902: LD_INT 1
4904: MINUS
4905: PPUSH
4906: LD_STRING Jevgenij Pepeljajev
4908: PPUSH
4909: CALL 1944 0 4
// ah = CreateHuman ;
4913: LD_ADDR_LOC 5
4917: PUSH
4918: CALL_OW 44
4922: ST_TO_ADDR
// pom = pom ^ ah ;
4923: LD_ADDR_LOC 8
4927: PUSH
4928: LD_LOC 8
4932: PUSH
4933: LD_LOC 5
4937: ADD
4938: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Dimitrij Oskin ) ;
4939: LD_INT 1
4941: PPUSH
4942: LD_INT 1
4944: PPUSH
4945: LD_EXP 59
4949: PUSH
4950: LD_OWVAR 67
4954: ARRAY
4955: PPUSH
4956: LD_STRING Dimitrij Oskin
4958: PPUSH
4959: CALL 1944 0 4
// ah = CreateHuman ;
4963: LD_ADDR_LOC 5
4967: PUSH
4968: CALL_OW 44
4972: ST_TO_ADDR
// pom = pom ^ ah ;
4973: LD_ADDR_LOC 8
4977: PUSH
4978: LD_LOC 8
4982: PUSH
4983: LD_LOC 5
4987: ADD
4988: ST_TO_ADDR
// prepare_human ( sex_male , class_scientistic , levelrusi [ difficulty ] , Sergej Kramarenko ) ;
4989: LD_INT 1
4991: PPUSH
4992: LD_INT 4
4994: PPUSH
4995: LD_EXP 59
4999: PUSH
5000: LD_OWVAR 67
5004: ARRAY
5005: PPUSH
5006: LD_STRING Sergej Kramarenko
5008: PPUSH
5009: CALL 1944 0 4
// ah = CreateHuman ;
5013: LD_ADDR_LOC 5
5017: PUSH
5018: CALL_OW 44
5022: ST_TO_ADDR
// pom = pom ^ ah ;
5023: LD_ADDR_LOC 8
5027: PUSH
5028: LD_LOC 8
5032: PUSH
5033: LD_LOC 5
5037: ADD
5038: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Alexandr Smorchov ) ;
5039: LD_INT 1
5041: PPUSH
5042: LD_INT 2
5044: PPUSH
5045: LD_EXP 59
5049: PUSH
5050: LD_OWVAR 67
5054: ARRAY
5055: PPUSH
5056: LD_STRING Alexandr Smorchov
5058: PPUSH
5059: CALL 1944 0 4
// ah = CreateHuman ;
5063: LD_ADDR_LOC 5
5067: PUSH
5068: CALL_OW 44
5072: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
5073: LD_ADDR_OWVAR 37
5077: PUSH
5078: LD_INT 22
5080: ST_TO_ADDR
// vc_control := control_manual ;
5081: LD_ADDR_OWVAR 38
5085: PUSH
5086: LD_INT 1
5088: ST_TO_ADDR
// vc_engine := engine_combustion ;
5089: LD_ADDR_OWVAR 39
5093: PUSH
5094: LD_INT 1
5096: ST_TO_ADDR
// vc_weapon := ru_cargo_bay ;
5097: LD_ADDR_OWVAR 40
5101: PUSH
5102: LD_INT 51
5104: ST_TO_ADDR
// av = CreateVehicle ;
5105: LD_ADDR_LOC 6
5109: PUSH
5110: CALL_OW 45
5114: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5115: LD_LOC 5
5119: PPUSH
5120: LD_LOC 6
5124: PPUSH
5125: CALL_OW 52
// pom = pom ^ av ;
5129: LD_ADDR_LOC 8
5133: PUSH
5134: LD_LOC 8
5138: PUSH
5139: LD_LOC 6
5143: ADD
5144: ST_TO_ADDR
// AddCargo ( av , mat_cans , 70 ) ;
5145: LD_LOC 6
5149: PPUSH
5150: LD_INT 1
5152: PPUSH
5153: LD_INT 70
5155: PPUSH
5156: CALL_OW 291
// AddCargo ( av , mat_oil , 30 ) ;
5160: LD_LOC 6
5164: PPUSH
5165: LD_INT 2
5167: PPUSH
5168: LD_INT 30
5170: PPUSH
5171: CALL_OW 291
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Jan Safarik ) ;
5175: LD_INT 1
5177: PPUSH
5178: LD_INT 2
5180: PPUSH
5181: LD_EXP 59
5185: PUSH
5186: LD_OWVAR 67
5190: ARRAY
5191: PPUSH
5192: LD_STRING Jan Safarik
5194: PPUSH
5195: CALL 1944 0 4
// ah = CreateHuman ;
5199: LD_ADDR_LOC 5
5203: PUSH
5204: CALL_OW 44
5208: ST_TO_ADDR
// av = CreateVehicle ;
5209: LD_ADDR_LOC 6
5213: PUSH
5214: CALL_OW 45
5218: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5219: LD_LOC 5
5223: PPUSH
5224: LD_LOC 6
5228: PPUSH
5229: CALL_OW 52
// pom = pom ^ av ;
5233: LD_ADDR_LOC 8
5237: PUSH
5238: LD_LOC 8
5242: PUSH
5243: LD_LOC 6
5247: ADD
5248: ST_TO_ADDR
// AddCargo ( av , mat_cans , 70 ) ;
5249: LD_LOC 6
5253: PPUSH
5254: LD_INT 1
5256: PPUSH
5257: LD_INT 70
5259: PPUSH
5260: CALL_OW 291
// AddCargo ( av , mat_oil , 30 ) ;
5264: LD_LOC 6
5268: PPUSH
5269: LD_INT 2
5271: PPUSH
5272: LD_INT 30
5274: PPUSH
5275: CALL_OW 291
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] + 1 , Michail Ponomarev ) ;
5279: LD_INT 1
5281: PPUSH
5282: LD_INT 3
5284: PPUSH
5285: LD_EXP 59
5289: PUSH
5290: LD_OWVAR 67
5294: ARRAY
5295: PUSH
5296: LD_INT 1
5298: PLUS
5299: PPUSH
5300: LD_STRING Michail Ponomarev
5302: PPUSH
5303: CALL 1944 0 4
// ah = CreateHuman ;
5307: LD_ADDR_LOC 5
5311: PUSH
5312: CALL_OW 44
5316: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
5317: LD_ADDR_OWVAR 37
5321: PUSH
5322: LD_INT 22
5324: ST_TO_ADDR
// vc_control := control_manual ;
5325: LD_ADDR_OWVAR 38
5329: PUSH
5330: LD_INT 1
5332: ST_TO_ADDR
// vc_engine := engine_combustion ;
5333: LD_ADDR_OWVAR 39
5337: PUSH
5338: LD_INT 1
5340: ST_TO_ADDR
// vc_weapon := ru_rocket_launcher ;
5341: LD_ADDR_OWVAR 40
5345: PUSH
5346: LD_INT 45
5348: ST_TO_ADDR
// av = CreateVehicle ;
5349: LD_ADDR_LOC 6
5353: PUSH
5354: CALL_OW 45
5358: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5359: LD_LOC 5
5363: PPUSH
5364: LD_LOC 6
5368: PPUSH
5369: CALL_OW 52
// pom = pom ^ av ;
5373: LD_ADDR_LOC 8
5377: PUSH
5378: LD_LOC 8
5382: PUSH
5383: LD_LOC 6
5387: ADD
5388: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] - 1 , Voloda Kromin ) ;
5389: LD_INT 1
5391: PPUSH
5392: LD_INT 3
5394: PPUSH
5395: LD_EXP 59
5399: PUSH
5400: LD_OWVAR 67
5404: ARRAY
5405: PUSH
5406: LD_INT 1
5408: MINUS
5409: PPUSH
5410: LD_STRING Voloda Kromin
5412: PPUSH
5413: CALL 1944 0 4
// ah = CreateHuman ;
5417: LD_ADDR_LOC 5
5421: PUSH
5422: CALL_OW 44
5426: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
5427: LD_ADDR_OWVAR 37
5431: PUSH
5432: LD_EXP 60
5436: PUSH
5437: LD_OWVAR 67
5441: ARRAY
5442: ST_TO_ADDR
// vc_control := control_manual ;
5443: LD_ADDR_OWVAR 38
5447: PUSH
5448: LD_INT 1
5450: ST_TO_ADDR
// vc_engine := engine_combustion ;
5451: LD_ADDR_OWVAR 39
5455: PUSH
5456: LD_INT 1
5458: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
5459: LD_ADDR_OWVAR 40
5463: PUSH
5464: LD_EXP 61
5468: PUSH
5469: LD_OWVAR 67
5473: ARRAY
5474: ST_TO_ADDR
// av = CreateVehicle ;
5475: LD_ADDR_LOC 6
5479: PUSH
5480: CALL_OW 45
5484: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5485: LD_LOC 5
5489: PPUSH
5490: LD_LOC 6
5494: PPUSH
5495: CALL_OW 52
// pom = pom ^ av ;
5499: LD_ADDR_LOC 8
5503: PUSH
5504: LD_LOC 8
5508: PUSH
5509: LD_LOC 6
5513: ADD
5514: ST_TO_ADDR
// if difficulty > 1 then
5515: LD_OWVAR 67
5519: PUSH
5520: LD_INT 1
5522: GREATER
5523: IFFALSE 5751
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] , Jan Kuklajs ) ;
5525: LD_INT 1
5527: PPUSH
5528: LD_INT 9
5530: PPUSH
5531: LD_EXP 59
5535: PUSH
5536: LD_OWVAR 67
5540: ARRAY
5541: PPUSH
5542: LD_STRING Jan Kuklajs
5544: PPUSH
5545: CALL 1944 0 4
// ah = CreateHuman ;
5549: LD_ADDR_LOC 5
5553: PUSH
5554: CALL_OW 44
5558: ST_TO_ADDR
// pom = pom ^ ah ;
5559: LD_ADDR_LOC 8
5563: PUSH
5564: LD_LOC 8
5568: PUSH
5569: LD_LOC 5
5573: ADD
5574: ST_TO_ADDR
// prepare_human ( sex_female , class_engineer , levelrusi [ difficulty ] , Tatiana Petrova ) ;
5575: LD_INT 2
5577: PPUSH
5578: LD_INT 2
5580: PPUSH
5581: LD_EXP 59
5585: PUSH
5586: LD_OWVAR 67
5590: ARRAY
5591: PPUSH
5592: LD_STRING Tatiana Petrova
5594: PPUSH
5595: CALL 1944 0 4
// ah = CreateHuman ;
5599: LD_ADDR_LOC 5
5603: PUSH
5604: CALL_OW 44
5608: ST_TO_ADDR
// pom = pom ^ ah ;
5609: LD_ADDR_LOC 8
5613: PUSH
5614: LD_LOC 8
5618: PUSH
5619: LD_LOC 5
5623: ADD
5624: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] + 2 , Ivan Kasatonov ) ;
5625: LD_INT 1
5627: PPUSH
5628: LD_INT 3
5630: PPUSH
5631: LD_EXP 59
5635: PUSH
5636: LD_OWVAR 67
5640: ARRAY
5641: PUSH
5642: LD_INT 2
5644: PLUS
5645: PPUSH
5646: LD_STRING Ivan Kasatonov
5648: PPUSH
5649: CALL 1944 0 4
// ah = CreateHuman ;
5653: LD_ADDR_LOC 5
5657: PUSH
5658: CALL_OW 44
5662: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
5663: LD_ADDR_OWVAR 37
5667: PUSH
5668: LD_EXP 60
5672: PUSH
5673: LD_OWVAR 67
5677: ARRAY
5678: ST_TO_ADDR
// vc_control := control_manual ;
5679: LD_ADDR_OWVAR 38
5683: PUSH
5684: LD_INT 1
5686: ST_TO_ADDR
// vc_engine := engine_combustion ;
5687: LD_ADDR_OWVAR 39
5691: PUSH
5692: LD_INT 1
5694: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
5695: LD_ADDR_OWVAR 40
5699: PUSH
5700: LD_EXP 61
5704: PUSH
5705: LD_OWVAR 67
5709: ARRAY
5710: ST_TO_ADDR
// av = CreateVehicle ;
5711: LD_ADDR_LOC 6
5715: PUSH
5716: CALL_OW 45
5720: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5721: LD_LOC 5
5725: PPUSH
5726: LD_LOC 6
5730: PPUSH
5731: CALL_OW 52
// pom = pom ^ av ;
5735: LD_ADDR_LOC 8
5739: PUSH
5740: LD_LOC 8
5744: PUSH
5745: LD_LOC 6
5749: ADD
5750: ST_TO_ADDR
// end ; if difficulty > 2 then
5751: LD_OWVAR 67
5755: PUSH
5756: LD_INT 2
5758: GREATER
5759: IFFALSE 5971
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 , Sergej Pakonin ) ;
5761: LD_INT 1
5763: PPUSH
5764: LD_INT 9
5766: PPUSH
5767: LD_EXP 59
5771: PUSH
5772: LD_OWVAR 67
5776: ARRAY
5777: PUSH
5778: LD_INT 1
5780: PLUS
5781: PPUSH
5782: LD_STRING Sergej Pakonin
5784: PPUSH
5785: CALL 1944 0 4
// ah = CreateHuman ;
5789: LD_ADDR_LOC 5
5793: PUSH
5794: CALL_OW 44
5798: ST_TO_ADDR
// pom = pom ^ ah ;
5799: LD_ADDR_LOC 8
5803: PUSH
5804: LD_LOC 8
5808: PUSH
5809: LD_LOC 5
5813: ADD
5814: ST_TO_ADDR
// prepare_human ( sex_female , class_engineer , levelrusi [ difficulty ] , Natasa Gryznova ) ;
5815: LD_INT 2
5817: PPUSH
5818: LD_INT 2
5820: PPUSH
5821: LD_EXP 59
5825: PUSH
5826: LD_OWVAR 67
5830: ARRAY
5831: PPUSH
5832: LD_STRING Natasa Gryznova
5834: PPUSH
5835: CALL 1944 0 4
// ah = CreateHuman ;
5839: LD_ADDR_LOC 5
5843: PUSH
5844: CALL_OW 44
5848: ST_TO_ADDR
// pom = pom ^ ah ;
5849: LD_ADDR_LOC 8
5853: PUSH
5854: LD_LOC 8
5858: PUSH
5859: LD_LOC 5
5863: ADD
5864: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] , Sergej Supin ) ;
5865: LD_INT 1
5867: PPUSH
5868: LD_INT 3
5870: PPUSH
5871: LD_EXP 59
5875: PUSH
5876: LD_OWVAR 67
5880: ARRAY
5881: PPUSH
5882: LD_STRING Sergej Supin
5884: PPUSH
5885: CALL 1944 0 4
// ah = CreateHuman ;
5889: LD_ADDR_LOC 5
5893: PUSH
5894: CALL_OW 44
5898: ST_TO_ADDR
// vc_chassis := ru_heavy_tracked ;
5899: LD_ADDR_OWVAR 37
5903: PUSH
5904: LD_INT 24
5906: ST_TO_ADDR
// vc_control := control_manual ;
5907: LD_ADDR_OWVAR 38
5911: PUSH
5912: LD_INT 1
5914: ST_TO_ADDR
// vc_engine := engine_siberite ;
5915: LD_ADDR_OWVAR 39
5919: PUSH
5920: LD_INT 3
5922: ST_TO_ADDR
// vc_weapon := ru_gun ;
5923: LD_ADDR_OWVAR 40
5927: PUSH
5928: LD_INT 44
5930: ST_TO_ADDR
// av = CreateVehicle ;
5931: LD_ADDR_LOC 6
5935: PUSH
5936: CALL_OW 45
5940: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5941: LD_LOC 5
5945: PPUSH
5946: LD_LOC 6
5950: PPUSH
5951: CALL_OW 52
// pom = pom ^ ah ;
5955: LD_ADDR_LOC 8
5959: PUSH
5960: LD_LOC 8
5964: PUSH
5965: LD_LOC 5
5969: ADD
5970: ST_TO_ADDR
// end ; CREATOVANI_RUSKEHO_KONVOJE_LIST := pom ;
5971: LD_ADDR_EXP 11
5975: PUSH
5976: LD_LOC 8
5980: ST_TO_ADDR
// end ;
5981: LD_VAR 0 2
5985: RET
// export function create_Cornel ; begin
5986: LD_INT 0
5988: PPUSH
// uc_side := You2 ;
5989: LD_ADDR_OWVAR 20
5993: PUSH
5994: LD_EXP 6
5998: ST_TO_ADDR
// uc_nation := nation_american ;
5999: LD_ADDR_OWVAR 21
6003: PUSH
6004: LD_INT 1
6006: ST_TO_ADDR
// uc_direction := 4 ;
6007: LD_ADDR_OWVAR 24
6011: PUSH
6012: LD_INT 4
6014: ST_TO_ADDR
// if Cornel <> 0 then
6015: LD_EXP 48
6019: PUSH
6020: LD_INT 0
6022: NONEQUAL
6023: IFFALSE 6040
// PlaceUnitArea ( Cornel , Corenter , false ) ;
6025: LD_EXP 48
6029: PPUSH
6030: LD_INT 17
6032: PPUSH
6033: LD_INT 0
6035: PPUSH
6036: CALL_OW 49
// end ;
6040: LD_VAR 0 1
6044: RET
// export function create_rusky_attack1 ; var i ; begin
6045: LD_INT 0
6047: PPUSH
6048: PPUSH
// uc_side := Rusi ;
6049: LD_ADDR_OWVAR 20
6053: PUSH
6054: LD_EXP 2
6058: ST_TO_ADDR
// uc_nation := nation_russian ;
6059: LD_ADDR_OWVAR 21
6063: PUSH
6064: LD_INT 3
6066: ST_TO_ADDR
// uc_direction := 4 ;
6067: LD_ADDR_OWVAR 24
6071: PUSH
6072: LD_INT 4
6074: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
6075: LD_ADDR_OWVAR 37
6079: PUSH
6080: LD_EXP 60
6084: PUSH
6085: LD_OWVAR 67
6089: ARRAY
6090: ST_TO_ADDR
// vc_control := control_computer ;
6091: LD_ADDR_OWVAR 38
6095: PUSH
6096: LD_INT 3
6098: ST_TO_ADDR
// vc_engine := engine_siberite ;
6099: LD_ADDR_OWVAR 39
6103: PUSH
6104: LD_INT 3
6106: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
6107: LD_ADDR_OWVAR 40
6111: PUSH
6112: LD_EXP 61
6116: PUSH
6117: LD_OWVAR 67
6121: ARRAY
6122: ST_TO_ADDR
// av = CreateVehicle ;
6123: LD_ADDR_LOC 6
6127: PUSH
6128: CALL_OW 45
6132: ST_TO_ADDR
// pom = [ av ] ;
6133: LD_ADDR_LOC 8
6137: PUSH
6138: LD_LOC 6
6142: PUSH
6143: EMPTY
6144: LIST
6145: ST_TO_ADDR
// if difficulty > 1 then
6146: LD_OWVAR 67
6150: PUSH
6151: LD_INT 1
6153: GREATER
6154: IFFALSE 6182
// begin av = CreateVehicle ;
6156: LD_ADDR_LOC 6
6160: PUSH
6161: CALL_OW 45
6165: ST_TO_ADDR
// pom = pom ^ av ;
6166: LD_ADDR_LOC 8
6170: PUSH
6171: LD_LOC 8
6175: PUSH
6176: LD_LOC 6
6180: ADD
6181: ST_TO_ADDR
// end ; if difficulty > 2 then
6182: LD_OWVAR 67
6186: PUSH
6187: LD_INT 2
6189: GREATER
6190: IFFALSE 6276
// begin vc_chassis := ru_medium_tracked ;
6192: LD_ADDR_OWVAR 37
6196: PUSH
6197: LD_INT 22
6199: ST_TO_ADDR
// vc_control := control_computer ;
6200: LD_ADDR_OWVAR 38
6204: PUSH
6205: LD_INT 3
6207: ST_TO_ADDR
// vc_engine := engine_siberite ;
6208: LD_ADDR_OWVAR 39
6212: PUSH
6213: LD_INT 3
6215: ST_TO_ADDR
// vc_weapon := ru_gun ;
6216: LD_ADDR_OWVAR 40
6220: PUSH
6221: LD_INT 44
6223: ST_TO_ADDR
// av = CreateVehicle ;
6224: LD_ADDR_LOC 6
6228: PUSH
6229: CALL_OW 45
6233: ST_TO_ADDR
// pom = pom ^ av ;
6234: LD_ADDR_LOC 8
6238: PUSH
6239: LD_LOC 8
6243: PUSH
6244: LD_LOC 6
6248: ADD
6249: ST_TO_ADDR
// av = CreateVehicle ;
6250: LD_ADDR_LOC 6
6254: PUSH
6255: CALL_OW 45
6259: ST_TO_ADDR
// pom = pom ^ av ;
6260: LD_ADDR_LOC 8
6264: PUSH
6265: LD_LOC 8
6269: PUSH
6270: LD_LOC 6
6274: ADD
6275: ST_TO_ADDR
// end ; for i in pom do
6276: LD_ADDR_VAR 0 2
6280: PUSH
6281: LD_LOC 8
6285: PUSH
6286: FOR_IN
6287: IFFALSE 6311
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
6289: LD_VAR 0 2
6293: PPUSH
6294: LD_EXP 68
6298: PUSH
6299: LD_OWVAR 67
6303: ARRAY
6304: PPUSH
6305: CALL_OW 234
6309: GO 6286
6311: POP
6312: POP
// CREATE_RUSKY_ATTACK1_LIST = pom ;
6313: LD_ADDR_EXP 12
6317: PUSH
6318: LD_LOC 8
6322: ST_TO_ADDR
// end ;
6323: LD_VAR 0 1
6327: RET
// export function create_vojaci ; begin
6328: LD_INT 0
6330: PPUSH
// uc_side := Rusi ;
6331: LD_ADDR_OWVAR 20
6335: PUSH
6336: LD_EXP 2
6340: ST_TO_ADDR
// uc_nation := nation_russian ;
6341: LD_ADDR_OWVAR 21
6345: PUSH
6346: LD_INT 3
6348: ST_TO_ADDR
// uc_direction := 4 ;
6349: LD_ADDR_OWVAR 24
6353: PUSH
6354: LD_INT 4
6356: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6357: LD_INT 1
6359: PPUSH
6360: LD_INT 9
6362: PPUSH
6363: LD_EXP 59
6367: PUSH
6368: LD_OWVAR 67
6372: ARRAY
6373: PUSH
6374: LD_INT 1
6376: PLUS
6377: PPUSH
6378: LD_STRING 
6380: PPUSH
6381: CALL 1944 0 4
// ah = CreateHuman ;
6385: LD_ADDR_LOC 5
6389: PUSH
6390: CALL_OW 44
6394: ST_TO_ADDR
// pom = [ ah ] ;
6395: LD_ADDR_LOC 8
6399: PUSH
6400: LD_LOC 5
6404: PUSH
6405: EMPTY
6406: LIST
6407: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
6408: LD_INT 1
6410: PPUSH
6411: LD_INT 9
6413: PPUSH
6414: LD_EXP 59
6418: PUSH
6419: LD_OWVAR 67
6423: ARRAY
6424: PPUSH
6425: LD_STRING 
6427: PPUSH
6428: CALL 1944 0 4
// ah = CreateHuman ;
6432: LD_ADDR_LOC 5
6436: PUSH
6437: CALL_OW 44
6441: ST_TO_ADDR
// pom = pom ^ ah ;
6442: LD_ADDR_LOC 8
6446: PUSH
6447: LD_LOC 8
6451: PUSH
6452: LD_LOC 5
6456: ADD
6457: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
6458: LD_INT 1
6460: PPUSH
6461: LD_INT 1
6463: PPUSH
6464: LD_INT 2
6466: PPUSH
6467: LD_STRING 
6469: PPUSH
6470: CALL 1944 0 4
// ah = CreateHuman ;
6474: LD_ADDR_LOC 5
6478: PUSH
6479: CALL_OW 44
6483: ST_TO_ADDR
// pom = pom ^ ah ;
6484: LD_ADDR_LOC 8
6488: PUSH
6489: LD_LOC 8
6493: PUSH
6494: LD_LOC 5
6498: ADD
6499: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
6500: LD_INT 1
6502: PPUSH
6503: LD_INT 1
6505: PPUSH
6506: LD_INT 2
6508: PPUSH
6509: LD_STRING 
6511: PPUSH
6512: CALL 1944 0 4
// ah = CreateHuman ;
6516: LD_ADDR_LOC 5
6520: PUSH
6521: CALL_OW 44
6525: ST_TO_ADDR
// pom = pom ^ ah ;
6526: LD_ADDR_LOC 8
6530: PUSH
6531: LD_LOC 8
6535: PUSH
6536: LD_LOC 5
6540: ADD
6541: ST_TO_ADDR
// if difficulty > 1 then
6542: LD_OWVAR 67
6546: PUSH
6547: LD_INT 1
6549: GREATER
6550: IFFALSE 6656
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6552: LD_INT 1
6554: PPUSH
6555: LD_INT 9
6557: PPUSH
6558: LD_EXP 59
6562: PUSH
6563: LD_OWVAR 67
6567: ARRAY
6568: PUSH
6569: LD_INT 1
6571: PLUS
6572: PPUSH
6573: LD_STRING 
6575: PPUSH
6576: CALL 1944 0 4
// ah = CreateHuman ;
6580: LD_ADDR_LOC 5
6584: PUSH
6585: CALL_OW 44
6589: ST_TO_ADDR
// pom = pom ^ ah ;
6590: LD_ADDR_LOC 8
6594: PUSH
6595: LD_LOC 8
6599: PUSH
6600: LD_LOC 5
6604: ADD
6605: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
6606: LD_INT 1
6608: PPUSH
6609: LD_INT 1
6611: PPUSH
6612: LD_EXP 59
6616: PUSH
6617: LD_OWVAR 67
6621: ARRAY
6622: PPUSH
6623: LD_STRING 
6625: PPUSH
6626: CALL 1944 0 4
// ah = CreateHuman ;
6630: LD_ADDR_LOC 5
6634: PUSH
6635: CALL_OW 44
6639: ST_TO_ADDR
// pom = pom ^ ah ;
6640: LD_ADDR_LOC 8
6644: PUSH
6645: LD_LOC 8
6649: PUSH
6650: LD_LOC 5
6654: ADD
6655: ST_TO_ADDR
// end ; if difficulty > 2 then
6656: LD_OWVAR 67
6660: PUSH
6661: LD_INT 2
6663: GREATER
6664: IFFALSE 6770
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6666: LD_INT 1
6668: PPUSH
6669: LD_INT 9
6671: PPUSH
6672: LD_EXP 59
6676: PUSH
6677: LD_OWVAR 67
6681: ARRAY
6682: PUSH
6683: LD_INT 1
6685: PLUS
6686: PPUSH
6687: LD_STRING 
6689: PPUSH
6690: CALL 1944 0 4
// ah = CreateHuman ;
6694: LD_ADDR_LOC 5
6698: PUSH
6699: CALL_OW 44
6703: ST_TO_ADDR
// pom = pom ^ ah ;
6704: LD_ADDR_LOC 8
6708: PUSH
6709: LD_LOC 8
6713: PUSH
6714: LD_LOC 5
6718: ADD
6719: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
6720: LD_INT 1
6722: PPUSH
6723: LD_INT 1
6725: PPUSH
6726: LD_EXP 59
6730: PUSH
6731: LD_OWVAR 67
6735: ARRAY
6736: PPUSH
6737: LD_STRING 
6739: PPUSH
6740: CALL 1944 0 4
// ah = CreateHuman ;
6744: LD_ADDR_LOC 5
6748: PUSH
6749: CALL_OW 44
6753: ST_TO_ADDR
// pom = pom ^ ah ;
6754: LD_ADDR_LOC 8
6758: PUSH
6759: LD_LOC 8
6763: PUSH
6764: LD_LOC 5
6768: ADD
6769: ST_TO_ADDR
// end ; CREATE_VOJACI_LIST = pom ;
6770: LD_ADDR_EXP 13
6774: PUSH
6775: LD_LOC 8
6779: ST_TO_ADDR
// end ;
6780: LD_VAR 0 1
6784: RET
// export function create_ar_zradu ; begin
6785: LD_INT 0
6787: PPUSH
// uc_side := Arabi2 ;
6788: LD_ADDR_OWVAR 20
6792: PUSH
6793: LD_EXP 4
6797: ST_TO_ADDR
// uc_nation := nation_arabian ;
6798: LD_ADDR_OWVAR 21
6802: PUSH
6803: LD_INT 2
6805: ST_TO_ADDR
// uc_direction := 4 ;
6806: LD_ADDR_OWVAR 24
6810: PUSH
6811: LD_INT 4
6813: ST_TO_ADDR
// prepare_human ( sex_male , class_desert_warior , 5 , Azib Alim ) ;
6814: LD_INT 1
6816: PPUSH
6817: LD_INT 11
6819: PPUSH
6820: LD_INT 5
6822: PPUSH
6823: LD_STRING Azib Alim
6825: PPUSH
6826: CALL 1944 0 4
// ah = CreateHuman ;
6830: LD_ADDR_LOC 5
6834: PUSH
6835: CALL_OW 44
6839: ST_TO_ADDR
// SetSide ( mas1 , Arabi2 ) ;
6840: LD_INT 14
6842: PPUSH
6843: LD_EXP 4
6847: PPUSH
6848: CALL_OW 235
// PlaceHumanInUnit ( ah , mas1 ) ;
6852: LD_LOC 5
6856: PPUSH
6857: LD_INT 14
6859: PPUSH
6860: CALL_OW 52
// PlaceUnitArea ( mas1 , AUenter , false ) ;
6864: LD_INT 14
6866: PPUSH
6867: LD_INT 23
6869: PPUSH
6870: LD_INT 0
6872: PPUSH
6873: CALL_OW 49
// ComCarabine ( ah ) ;
6877: LD_LOC 5
6881: PPUSH
6882: CALL_OW 162
// prepare_human ( sex_male , class_desert_warior , 5 , Gmamal El Aziz ) ;
6886: LD_INT 1
6888: PPUSH
6889: LD_INT 11
6891: PPUSH
6892: LD_INT 5
6894: PPUSH
6895: LD_STRING Gmamal El Aziz
6897: PPUSH
6898: CALL 1944 0 4
// ah = CreateHuman ;
6902: LD_ADDR_LOC 5
6906: PUSH
6907: CALL_OW 44
6911: ST_TO_ADDR
// SetSide ( mas2 , Arabi2 ) ;
6912: LD_INT 13
6914: PPUSH
6915: LD_EXP 4
6919: PPUSH
6920: CALL_OW 235
// PlaceHumanInUnit ( ah , mas2 ) ;
6924: LD_LOC 5
6928: PPUSH
6929: LD_INT 13
6931: PPUSH
6932: CALL_OW 52
// PlaceUnitArea ( mas2 , AUenter , false ) ;
6936: LD_INT 13
6938: PPUSH
6939: LD_INT 23
6941: PPUSH
6942: LD_INT 0
6944: PPUSH
6945: CALL_OW 49
// ComCarabine ( ah ) ;
6949: LD_LOC 5
6953: PPUSH
6954: CALL_OW 162
// prepare_human ( sex_male , class_soldier , 5 , Suman Oles ) ;
6958: LD_INT 1
6960: PPUSH
6961: LD_INT 1
6963: PPUSH
6964: LD_INT 5
6966: PPUSH
6967: LD_STRING Suman Oles
6969: PPUSH
6970: CALL 1944 0 4
// ah = CreateHuman ;
6974: LD_ADDR_LOC 5
6978: PUSH
6979: CALL_OW 44
6983: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
6984: LD_LOC 5
6988: PPUSH
6989: LD_INT 23
6991: PPUSH
6992: LD_INT 0
6994: PPUSH
6995: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 3 , Oman Hajalib ) ;
6999: LD_INT 1
7001: PPUSH
7002: LD_INT 1
7004: PPUSH
7005: LD_INT 3
7007: PPUSH
7008: LD_STRING Oman Hajalib
7010: PPUSH
7011: CALL 1944 0 4
// ah = CreateHuman ;
7015: LD_ADDR_LOC 5
7019: PUSH
7020: CALL_OW 44
7024: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
7025: LD_LOC 5
7029: PPUSH
7030: LD_INT 23
7032: PPUSH
7033: LD_INT 0
7035: PPUSH
7036: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 5 , Ed Sobaletzki ) ;
7040: LD_INT 1
7042: PPUSH
7043: LD_INT 1
7045: PPUSH
7046: LD_INT 5
7048: PPUSH
7049: LD_STRING Ed Sobaletzki
7051: PPUSH
7052: CALL 1944 0 4
// ah = CreateHuman ;
7056: LD_ADDR_LOC 5
7060: PUSH
7061: CALL_OW 44
7065: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
7066: LD_LOC 5
7070: PPUSH
7071: LD_INT 23
7073: PPUSH
7074: LD_INT 0
7076: PPUSH
7077: CALL_OW 49
// end ;
7081: LD_VAR 0 1
7085: RET
// export function uprav_mastodonty ; begin
7086: LD_INT 0
7088: PPUSH
// RemoveUnit ( mas1 ) ;
7089: LD_INT 14
7091: PPUSH
7092: CALL_OW 64
// RemoveUnit ( mas2 ) ;
7096: LD_INT 13
7098: PPUSH
7099: CALL_OW 64
// end ;
7103: LD_VAR 0 1
7107: RET
// export function create_engineer ; begin
7108: LD_INT 0
7110: PPUSH
// uc_side := Rusi ;
7111: LD_ADDR_OWVAR 20
7115: PUSH
7116: LD_EXP 2
7120: ST_TO_ADDR
// uc_nation := nation_Russian ;
7121: LD_ADDR_OWVAR 21
7125: PUSH
7126: LD_INT 3
7128: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] ,  ) ;
7129: LD_INT 1
7131: PPUSH
7132: LD_INT 2
7134: PPUSH
7135: LD_EXP 59
7139: PUSH
7140: LD_OWVAR 67
7144: ARRAY
7145: PPUSH
7146: LD_STRING 
7148: PPUSH
7149: CALL 1944 0 4
// ah = CreateHuman ;
7153: LD_ADDR_LOC 5
7157: PUSH
7158: CALL_OW 44
7162: ST_TO_ADDR
// PlaceUnitArea ( ah , RE3 , false ) ;
7163: LD_LOC 5
7167: PPUSH
7168: LD_INT 6
7170: PPUSH
7171: LD_INT 0
7173: PPUSH
7174: CALL_OW 49
// end ;
7178: LD_VAR 0 1
7182: RET
// export function create_2_new_attack ; var i ; begin
7183: LD_INT 0
7185: PPUSH
7186: PPUSH
// uc_side := Rusi ;
7187: LD_ADDR_OWVAR 20
7191: PUSH
7192: LD_EXP 2
7196: ST_TO_ADDR
// uc_nation := nation_russian ;
7197: LD_ADDR_OWVAR 21
7201: PUSH
7202: LD_INT 3
7204: ST_TO_ADDR
// uc_direction := 4 ;
7205: LD_ADDR_OWVAR 24
7209: PUSH
7210: LD_INT 4
7212: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
7213: LD_INT 1
7215: PPUSH
7216: LD_INT 9
7218: PPUSH
7219: LD_EXP 59
7223: PUSH
7224: LD_OWVAR 67
7228: ARRAY
7229: PPUSH
7230: LD_STRING 
7232: PPUSH
7233: CALL 1944 0 4
// ah = CreateHuman ;
7237: LD_ADDR_LOC 5
7241: PUSH
7242: CALL_OW 44
7246: ST_TO_ADDR
// pom = [ ah ] ;
7247: LD_ADDR_LOC 8
7251: PUSH
7252: LD_LOC 5
7256: PUSH
7257: EMPTY
7258: LIST
7259: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] - 2 ,  ) ;
7260: LD_INT 1
7262: PPUSH
7263: LD_INT 3
7265: PPUSH
7266: LD_EXP 59
7270: PUSH
7271: LD_OWVAR 67
7275: ARRAY
7276: PUSH
7277: LD_INT 2
7279: MINUS
7280: PPUSH
7281: LD_STRING 
7283: PPUSH
7284: CALL 1944 0 4
// ah = CreateHuman ;
7288: LD_ADDR_LOC 5
7292: PUSH
7293: CALL_OW 44
7297: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
7298: LD_INT 1
7300: PPUSH
7301: LD_INT 1
7303: PPUSH
7304: LD_INT 2
7306: PPUSH
7307: LD_STRING 
7309: PPUSH
7310: CALL 1944 0 4
// ah = CreateHuman ;
7314: LD_ADDR_LOC 5
7318: PUSH
7319: CALL_OW 44
7323: ST_TO_ADDR
// pom = pom ^ ah ;
7324: LD_ADDR_LOC 8
7328: PUSH
7329: LD_LOC 8
7333: PUSH
7334: LD_LOC 5
7338: ADD
7339: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
7340: LD_ADDR_OWVAR 37
7344: PUSH
7345: LD_INT 22
7347: ST_TO_ADDR
// vc_control := control_manual ;
7348: LD_ADDR_OWVAR 38
7352: PUSH
7353: LD_INT 1
7355: ST_TO_ADDR
// vc_engine := engine_siberite ;
7356: LD_ADDR_OWVAR 39
7360: PUSH
7361: LD_INT 3
7363: ST_TO_ADDR
// vc_weapon := ru_heavy_machine_gun ;
7364: LD_ADDR_OWVAR 40
7368: PUSH
7369: LD_INT 42
7371: ST_TO_ADDR
// av = CreateVehicle ;
7372: LD_ADDR_LOC 6
7376: PUSH
7377: CALL_OW 45
7381: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
7382: LD_LOC 5
7386: PPUSH
7387: LD_LOC 6
7391: PPUSH
7392: CALL_OW 52
// pom = pom ^ av ;
7396: LD_ADDR_LOC 8
7400: PUSH
7401: LD_LOC 8
7405: PUSH
7406: LD_LOC 6
7410: ADD
7411: ST_TO_ADDR
// if difficulty > 1 then
7412: LD_OWVAR 67
7416: PUSH
7417: LD_INT 1
7419: GREATER
7420: IFFALSE 7480
// begin vc_control = control_computer ;
7422: LD_ADDR_OWVAR 38
7426: PUSH
7427: LD_INT 3
7429: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
7430: LD_ADDR_OWVAR 40
7434: PUSH
7435: LD_EXP 61
7439: PUSH
7440: LD_OWVAR 67
7444: ARRAY
7445: ST_TO_ADDR
// vc_engine := engine_combustion ;
7446: LD_ADDR_OWVAR 39
7450: PUSH
7451: LD_INT 1
7453: ST_TO_ADDR
// av = CreateVehicle ;
7454: LD_ADDR_LOC 6
7458: PUSH
7459: CALL_OW 45
7463: ST_TO_ADDR
// pom = pom ^ av ;
7464: LD_ADDR_LOC 8
7468: PUSH
7469: LD_LOC 8
7473: PUSH
7474: LD_LOC 6
7478: ADD
7479: ST_TO_ADDR
// end ; if difficulty > 2 then
7480: LD_OWVAR 67
7484: PUSH
7485: LD_INT 2
7487: GREATER
7488: IFFALSE 7528
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
7490: LD_ADDR_LOC 8
7494: PUSH
7495: LD_LOC 8
7499: PUSH
7500: CALL 8273 0 0
7504: PPUSH
7505: LD_INT 1
7507: PPUSH
7508: LD_EXP 59
7512: PUSH
7513: LD_OWVAR 67
7517: ARRAY
7518: PPUSH
7519: LD_STRING 
7521: PPUSH
7522: CALL 8215 0 4
7526: ADD
7527: ST_TO_ADDR
// for i in pom do
7528: LD_ADDR_VAR 0 2
7532: PUSH
7533: LD_LOC 8
7537: PUSH
7538: FOR_IN
7539: IFFALSE 7563
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
7541: LD_VAR 0 2
7545: PPUSH
7546: LD_EXP 68
7550: PUSH
7551: LD_OWVAR 67
7555: ARRAY
7556: PPUSH
7557: CALL_OW 234
7561: GO 7538
7563: POP
7564: POP
// CREATE_2_NEW_ATTACK_LIST = pom ;
7565: LD_ADDR_EXP 14
7569: PUSH
7570: LD_LOC 8
7574: ST_TO_ADDR
// end ;
7575: LD_VAR 0 1
7579: RET
// export function create_3_new_attack ; var i ; begin
7580: LD_INT 0
7582: PPUSH
7583: PPUSH
// uc_side := Rusi ;
7584: LD_ADDR_OWVAR 20
7588: PUSH
7589: LD_EXP 2
7593: ST_TO_ADDR
// uc_nation := nation_russian ;
7594: LD_ADDR_OWVAR 21
7598: PUSH
7599: LD_INT 3
7601: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] - 1 ,  ) ;
7602: LD_INT 1
7604: PPUSH
7605: LD_INT 9
7607: PPUSH
7608: LD_EXP 59
7612: PUSH
7613: LD_OWVAR 67
7617: ARRAY
7618: PUSH
7619: LD_INT 1
7621: MINUS
7622: PPUSH
7623: LD_STRING 
7625: PPUSH
7626: CALL 1944 0 4
// ah = CreateHuman ;
7630: LD_ADDR_LOC 5
7634: PUSH
7635: CALL_OW 44
7639: ST_TO_ADDR
// pom = [ ah ] ;
7640: LD_ADDR_LOC 8
7644: PUSH
7645: LD_LOC 5
7649: PUSH
7650: EMPTY
7651: LIST
7652: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
7653: LD_INT 1
7655: PPUSH
7656: LD_INT 1
7658: PPUSH
7659: LD_EXP 59
7663: PUSH
7664: LD_OWVAR 67
7668: ARRAY
7669: PPUSH
7670: LD_STRING 
7672: PPUSH
7673: CALL 1944 0 4
// ah = CreateHuman ;
7677: LD_ADDR_LOC 5
7681: PUSH
7682: CALL_OW 44
7686: ST_TO_ADDR
// pom = pom ^ ah ;
7687: LD_ADDR_LOC 8
7691: PUSH
7692: LD_LOC 8
7696: PUSH
7697: LD_LOC 5
7701: ADD
7702: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
7703: LD_INT 1
7705: PPUSH
7706: LD_INT 1
7708: PPUSH
7709: LD_INT 2
7711: PPUSH
7712: LD_STRING 
7714: PPUSH
7715: CALL 1944 0 4
// ah = CreateHuman ;
7719: LD_ADDR_LOC 5
7723: PUSH
7724: CALL_OW 44
7728: ST_TO_ADDR
// pom = pom ^ ah ;
7729: LD_ADDR_LOC 8
7733: PUSH
7734: LD_LOC 8
7738: PUSH
7739: LD_LOC 5
7743: ADD
7744: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
7745: LD_ADDR_OWVAR 37
7749: PUSH
7750: LD_INT 22
7752: ST_TO_ADDR
// vc_control := control_computer ;
7753: LD_ADDR_OWVAR 38
7757: PUSH
7758: LD_INT 3
7760: ST_TO_ADDR
// vc_engine := engine_siberite ;
7761: LD_ADDR_OWVAR 39
7765: PUSH
7766: LD_INT 3
7768: ST_TO_ADDR
// vc_weapon := ru_gun ;
7769: LD_ADDR_OWVAR 40
7773: PUSH
7774: LD_INT 44
7776: ST_TO_ADDR
// av = CreateVehicle ;
7777: LD_ADDR_LOC 6
7781: PUSH
7782: CALL_OW 45
7786: ST_TO_ADDR
// pom = pom ^ av ;
7787: LD_ADDR_LOC 8
7791: PUSH
7792: LD_LOC 8
7796: PUSH
7797: LD_LOC 6
7801: ADD
7802: ST_TO_ADDR
// vc_weapon = zbranrusi [ difficulty ] ;
7803: LD_ADDR_OWVAR 40
7807: PUSH
7808: LD_EXP 61
7812: PUSH
7813: LD_OWVAR 67
7817: ARRAY
7818: ST_TO_ADDR
// av = CreateVehicle ;
7819: LD_ADDR_LOC 6
7823: PUSH
7824: CALL_OW 45
7828: ST_TO_ADDR
// pom = pom ^ av ;
7829: LD_ADDR_LOC 8
7833: PUSH
7834: LD_LOC 8
7838: PUSH
7839: LD_LOC 6
7843: ADD
7844: ST_TO_ADDR
// if difficulty > 1 then
7845: LD_OWVAR 67
7849: PUSH
7850: LD_INT 1
7852: GREATER
7853: IFFALSE 7955
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 1 ,  ) ;
7855: LD_ADDR_LOC 5
7859: PUSH
7860: CALL 8273 0 0
7864: PPUSH
7865: LD_INT 3
7867: PPUSH
7868: LD_EXP 59
7872: PUSH
7873: LD_OWVAR 67
7877: ARRAY
7878: PUSH
7879: LD_INT 1
7881: MINUS
7882: PPUSH
7883: LD_STRING 
7885: PPUSH
7886: CALL 8215 0 4
7890: ST_TO_ADDR
// vc_control = control_manual ;
7891: LD_ADDR_OWVAR 38
7895: PUSH
7896: LD_INT 1
7898: ST_TO_ADDR
// vc_weapon := ru_gatling_gun ;
7899: LD_ADDR_OWVAR 40
7903: PUSH
7904: LD_INT 43
7906: ST_TO_ADDR
// vc_engine := engine_combustion ;
7907: LD_ADDR_OWVAR 39
7911: PUSH
7912: LD_INT 1
7914: ST_TO_ADDR
// av = CreateVehicle ;
7915: LD_ADDR_LOC 6
7919: PUSH
7920: CALL_OW 45
7924: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
7925: LD_LOC 5
7929: PPUSH
7930: LD_LOC 6
7934: PPUSH
7935: CALL_OW 52
// pom = pom ^ av ;
7939: LD_ADDR_LOC 8
7943: PUSH
7944: LD_LOC 8
7948: PUSH
7949: LD_LOC 6
7953: ADD
7954: ST_TO_ADDR
// end ; if difficulty > 2 then
7955: LD_OWVAR 67
7959: PUSH
7960: LD_INT 2
7962: GREATER
7963: IFFALSE 8007
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] - 3 ,  ) ;
7965: LD_ADDR_LOC 8
7969: PUSH
7970: LD_LOC 8
7974: PUSH
7975: CALL 8273 0 0
7979: PPUSH
7980: LD_INT 9
7982: PPUSH
7983: LD_EXP 59
7987: PUSH
7988: LD_OWVAR 67
7992: ARRAY
7993: PUSH
7994: LD_INT 3
7996: MINUS
7997: PPUSH
7998: LD_STRING 
8000: PPUSH
8001: CALL 8215 0 4
8005: ADD
8006: ST_TO_ADDR
// for i in pom do
8007: LD_ADDR_VAR 0 2
8011: PUSH
8012: LD_LOC 8
8016: PUSH
8017: FOR_IN
8018: IFFALSE 8042
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
8020: LD_VAR 0 2
8024: PPUSH
8025: LD_EXP 68
8029: PUSH
8030: LD_OWVAR 67
8034: ARRAY
8035: PPUSH
8036: CALL_OW 234
8040: GO 8017
8042: POP
8043: POP
// CREATE_3_NEW_ATTACK_LIST = pom ;
8044: LD_ADDR_EXP 15
8048: PUSH
8049: LD_LOC 8
8053: ST_TO_ADDR
// end ;
8054: LD_VAR 0 1
8058: RET
// export function create_bazooka_attack ; var i ; begin
8059: LD_INT 0
8061: PPUSH
8062: PPUSH
// uc_side := Rusi ;
8063: LD_ADDR_OWVAR 20
8067: PUSH
8068: LD_EXP 2
8072: ST_TO_ADDR
// uc_nation := nation_russian ;
8073: LD_ADDR_OWVAR 21
8077: PUSH
8078: LD_INT 3
8080: ST_TO_ADDR
// pom = [ ] ;
8081: LD_ADDR_LOC 8
8085: PUSH
8086: EMPTY
8087: ST_TO_ADDR
// for i := 1 to difficulty + 1 do
8088: LD_ADDR_VAR 0 2
8092: PUSH
8093: DOUBLE
8094: LD_INT 1
8096: DEC
8097: ST_TO_ADDR
8098: LD_OWVAR 67
8102: PUSH
8103: LD_INT 1
8105: PLUS
8106: PUSH
8107: FOR_TO
8108: IFFALSE 8148
// pom = pom + get_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8110: LD_ADDR_LOC 8
8114: PUSH
8115: LD_LOC 8
8119: PUSH
8120: LD_INT 1
8122: PPUSH
8123: LD_INT 9
8125: PPUSH
8126: LD_EXP 59
8130: PUSH
8131: LD_OWVAR 67
8135: ARRAY
8136: PPUSH
8137: LD_STRING 
8139: PPUSH
8140: CALL 8215 0 4
8144: PLUS
8145: ST_TO_ADDR
8146: GO 8107
8148: POP
8149: POP
// for i := 1 to difficulty do
8150: LD_ADDR_VAR 0 2
8154: PUSH
8155: DOUBLE
8156: LD_INT 1
8158: DEC
8159: ST_TO_ADDR
8160: LD_OWVAR 67
8164: PUSH
8165: FOR_TO
8166: IFFALSE 8198
// pom = pom + get_human ( sex_male , class_soldier , 3 ,  ) ;
8168: LD_ADDR_LOC 8
8172: PUSH
8173: LD_LOC 8
8177: PUSH
8178: LD_INT 1
8180: PPUSH
8181: LD_INT 1
8183: PPUSH
8184: LD_INT 3
8186: PPUSH
8187: LD_STRING 
8189: PPUSH
8190: CALL 8215 0 4
8194: PLUS
8195: ST_TO_ADDR
8196: GO 8165
8198: POP
8199: POP
// CREATE_BAZOOKA_ATTACK_LIST = pom ;
8200: LD_ADDR_EXP 16
8204: PUSH
8205: LD_LOC 8
8209: ST_TO_ADDR
// end ;
8210: LD_VAR 0 1
8214: RET
// function get_human ( sex , clas , level , name ) ; var pom ; begin
8215: LD_INT 0
8217: PPUSH
8218: PPUSH
// PrepareHuman ( sex , clas , level ) ;
8219: LD_VAR 0 1
8223: PPUSH
8224: LD_VAR 0 2
8228: PPUSH
8229: LD_VAR 0 3
8233: PPUSH
8234: CALL_OW 380
// hc_name := name ;
8238: LD_ADDR_OWVAR 26
8242: PUSH
8243: LD_VAR 0 4
8247: ST_TO_ADDR
// pom = CreateHuman ;
8248: LD_ADDR_VAR 0 6
8252: PUSH
8253: CALL_OW 44
8257: ST_TO_ADDR
// result := pom ;
8258: LD_ADDR_VAR 0 5
8262: PUSH
8263: LD_VAR 0 6
8267: ST_TO_ADDR
// end ;
8268: LD_VAR 0 5
8272: RET
// function get_sex ; begin
8273: LD_INT 0
8275: PPUSH
// if Prob ( 20 ) then
8276: LD_INT 20
8278: PPUSH
8279: CALL_OW 13
8283: IFFALSE 8295
// result = sex_female else
8285: LD_ADDR_VAR 0 1
8289: PUSH
8290: LD_INT 2
8292: ST_TO_ADDR
8293: GO 8303
// result = sex_male ;
8295: LD_ADDR_VAR 0 1
8299: PUSH
8300: LD_INT 1
8302: ST_TO_ADDR
// end ;
8303: LD_VAR 0 1
8307: RET
// export function create_rusky_utok_0 ; var pom ; begin
8308: LD_INT 0
8310: PPUSH
8311: PPUSH
// pom = [ ] ;
8312: LD_ADDR_VAR 0 2
8316: PUSH
8317: EMPTY
8318: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
8319: LD_ADDR_VAR 0 2
8323: PUSH
8324: CALL 8273 0 0
8328: PPUSH
8329: LD_INT 1
8331: PPUSH
8332: LD_EXP 59
8336: PUSH
8337: LD_OWVAR 67
8341: ARRAY
8342: PPUSH
8343: LD_STRING 
8345: PPUSH
8346: CALL 8215 0 4
8350: ST_TO_ADDR
// if pom > 1 then
8351: LD_VAR 0 2
8355: PUSH
8356: LD_INT 1
8358: GREATER
8359: IFFALSE 8403
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] - 2 ,  ) ;
8361: LD_ADDR_VAR 0 2
8365: PUSH
8366: LD_VAR 0 2
8370: PUSH
8371: CALL 8273 0 0
8375: PPUSH
8376: LD_INT 1
8378: PPUSH
8379: LD_EXP 59
8383: PUSH
8384: LD_OWVAR 67
8388: ARRAY
8389: PUSH
8390: LD_INT 2
8392: MINUS
8393: PPUSH
8394: LD_STRING 
8396: PPUSH
8397: CALL 8215 0 4
8401: ADD
8402: ST_TO_ADDR
// if pom > 2 then
8403: LD_VAR 0 2
8407: PUSH
8408: LD_INT 2
8410: GREATER
8411: IFFALSE 8455
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] - 1 ,  ) ;
8413: LD_ADDR_VAR 0 2
8417: PUSH
8418: LD_VAR 0 2
8422: PUSH
8423: CALL 8273 0 0
8427: PPUSH
8428: LD_INT 1
8430: PPUSH
8431: LD_EXP 59
8435: PUSH
8436: LD_OWVAR 67
8440: ARRAY
8441: PUSH
8442: LD_INT 1
8444: MINUS
8445: PPUSH
8446: LD_STRING 
8448: PPUSH
8449: CALL 8215 0 4
8453: ADD
8454: ST_TO_ADDR
// RUSKY_UTOK_0_LIST = pom ;
8455: LD_ADDR_EXP 17
8459: PUSH
8460: LD_VAR 0 2
8464: ST_TO_ADDR
// end ;
8465: LD_VAR 0 1
8469: RET
// export function create_attack_after_end ; begin
8470: LD_INT 0
8472: PPUSH
// uc_side := Rusi ;
8473: LD_ADDR_OWVAR 20
8477: PUSH
8478: LD_EXP 2
8482: ST_TO_ADDR
// uc_nation := nation_russian ;
8483: LD_ADDR_OWVAR 21
8487: PUSH
8488: LD_INT 3
8490: ST_TO_ADDR
// pom = [ ] ;
8491: LD_ADDR_LOC 8
8495: PUSH
8496: EMPTY
8497: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8498: LD_ADDR_LOC 8
8502: PUSH
8503: LD_LOC 8
8507: PUSH
8508: CALL 8273 0 0
8512: PPUSH
8513: LD_INT 9
8515: PPUSH
8516: LD_EXP 59
8520: PUSH
8521: LD_OWVAR 67
8525: ARRAY
8526: PPUSH
8527: LD_STRING 
8529: PPUSH
8530: CALL 8215 0 4
8534: ADD
8535: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8536: LD_ADDR_LOC 8
8540: PUSH
8541: LD_LOC 8
8545: PUSH
8546: CALL 8273 0 0
8550: PPUSH
8551: LD_INT 9
8553: PPUSH
8554: LD_EXP 59
8558: PUSH
8559: LD_OWVAR 67
8563: ARRAY
8564: PPUSH
8565: LD_STRING 
8567: PPUSH
8568: CALL 8215 0 4
8572: ADD
8573: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
8574: LD_ADDR_LOC 8
8578: PUSH
8579: LD_LOC 8
8583: PUSH
8584: CALL 8273 0 0
8588: PPUSH
8589: LD_INT 1
8591: PPUSH
8592: LD_EXP 59
8596: PUSH
8597: LD_OWVAR 67
8601: ARRAY
8602: PPUSH
8603: LD_STRING 
8605: PPUSH
8606: CALL 8215 0 4
8610: ADD
8611: ST_TO_ADDR
// vc_control = control_computer ;
8612: LD_ADDR_OWVAR 38
8616: PUSH
8617: LD_INT 3
8619: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
8620: LD_ADDR_OWVAR 37
8624: PUSH
8625: LD_EXP 60
8629: PUSH
8630: LD_OWVAR 67
8634: ARRAY
8635: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
8636: LD_ADDR_OWVAR 40
8640: PUSH
8641: LD_EXP 61
8645: PUSH
8646: LD_OWVAR 67
8650: ARRAY
8651: ST_TO_ADDR
// av = CreateVehicle ;
8652: LD_ADDR_LOC 6
8656: PUSH
8657: CALL_OW 45
8661: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8662: LD_LOC 6
8666: PPUSH
8667: LD_EXP 78
8671: PUSH
8672: LD_OWVAR 67
8676: ARRAY
8677: PPUSH
8678: CALL_OW 234
// pom = pom ^ av ;
8682: LD_ADDR_LOC 8
8686: PUSH
8687: LD_LOC 8
8691: PUSH
8692: LD_LOC 6
8696: ADD
8697: ST_TO_ADDR
// av = CreateVehicle ;
8698: LD_ADDR_LOC 6
8702: PUSH
8703: CALL_OW 45
8707: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8708: LD_LOC 6
8712: PPUSH
8713: LD_EXP 78
8717: PUSH
8718: LD_OWVAR 67
8722: ARRAY
8723: PPUSH
8724: CALL_OW 234
// pom = pom ^ av ;
8728: LD_ADDR_LOC 8
8732: PUSH
8733: LD_LOC 8
8737: PUSH
8738: LD_LOC 6
8742: ADD
8743: ST_TO_ADDR
// av = CreateVehicle ;
8744: LD_ADDR_LOC 6
8748: PUSH
8749: CALL_OW 45
8753: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8754: LD_LOC 6
8758: PPUSH
8759: LD_EXP 78
8763: PUSH
8764: LD_OWVAR 67
8768: ARRAY
8769: PPUSH
8770: CALL_OW 234
// pom = pom ^ av ;
8774: LD_ADDR_LOC 8
8778: PUSH
8779: LD_LOC 8
8783: PUSH
8784: LD_LOC 6
8788: ADD
8789: ST_TO_ADDR
// RUSSIAN_AFTER_END_ATTACK_LIST1 = pom ;
8790: LD_ADDR_EXP 18
8794: PUSH
8795: LD_LOC 8
8799: ST_TO_ADDR
// pom = [ ] ;
8800: LD_ADDR_LOC 8
8804: PUSH
8805: EMPTY
8806: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8807: LD_ADDR_LOC 8
8811: PUSH
8812: LD_LOC 8
8816: PUSH
8817: CALL 8273 0 0
8821: PPUSH
8822: LD_INT 9
8824: PPUSH
8825: LD_EXP 59
8829: PUSH
8830: LD_OWVAR 67
8834: ARRAY
8835: PPUSH
8836: LD_STRING 
8838: PPUSH
8839: CALL 8215 0 4
8843: ADD
8844: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
8845: LD_ADDR_LOC 8
8849: PUSH
8850: LD_LOC 8
8854: PUSH
8855: CALL 8273 0 0
8859: PPUSH
8860: LD_INT 1
8862: PPUSH
8863: LD_EXP 59
8867: PUSH
8868: LD_OWVAR 67
8872: ARRAY
8873: PPUSH
8874: LD_STRING 
8876: PPUSH
8877: CALL 8215 0 4
8881: ADD
8882: ST_TO_ADDR
// vc_control = control_computer ;
8883: LD_ADDR_OWVAR 38
8887: PUSH
8888: LD_INT 3
8890: ST_TO_ADDR
// vc_chassis := ru_heavy_tracked ;
8891: LD_ADDR_OWVAR 37
8895: PUSH
8896: LD_INT 24
8898: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
8899: LD_ADDR_OWVAR 40
8903: PUSH
8904: LD_INT 42
8906: ST_TO_ADDR
// av = CreateVehicle ;
8907: LD_ADDR_LOC 6
8911: PUSH
8912: CALL_OW 45
8916: ST_TO_ADDR
// pom = pom ^ av ;
8917: LD_ADDR_LOC 8
8921: PUSH
8922: LD_LOC 8
8926: PUSH
8927: LD_LOC 6
8931: ADD
8932: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 3 ,  ) ;
8933: LD_ADDR_LOC 5
8937: PUSH
8938: CALL 8273 0 0
8942: PPUSH
8943: LD_INT 3
8945: PPUSH
8946: LD_EXP 59
8950: PUSH
8951: LD_OWVAR 67
8955: ARRAY
8956: PUSH
8957: LD_INT 3
8959: MINUS
8960: PPUSH
8961: LD_STRING 
8963: PPUSH
8964: CALL 8215 0 4
8968: ST_TO_ADDR
// vc_control = control_manual ;
8969: LD_ADDR_OWVAR 38
8973: PUSH
8974: LD_INT 1
8976: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
8977: LD_ADDR_OWVAR 40
8981: PUSH
8982: LD_EXP 61
8986: PUSH
8987: LD_OWVAR 67
8991: ARRAY
8992: ST_TO_ADDR
// av = CreateVehicle ;
8993: LD_ADDR_LOC 6
8997: PUSH
8998: CALL_OW 45
9002: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9003: LD_LOC 5
9007: PPUSH
9008: LD_LOC 6
9012: PPUSH
9013: CALL_OW 52
// pom = pom ^ av ;
9017: LD_ADDR_LOC 8
9021: PUSH
9022: LD_LOC 8
9026: PUSH
9027: LD_LOC 6
9031: ADD
9032: ST_TO_ADDR
// if difficulty > 2 then
9033: LD_OWVAR 67
9037: PUSH
9038: LD_INT 2
9040: GREATER
9041: IFFALSE 9127
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 2 ,  ) ;
9043: LD_ADDR_LOC 5
9047: PUSH
9048: CALL 8273 0 0
9052: PPUSH
9053: LD_INT 3
9055: PPUSH
9056: LD_EXP 59
9060: PUSH
9061: LD_OWVAR 67
9065: ARRAY
9066: PUSH
9067: LD_INT 2
9069: MINUS
9070: PPUSH
9071: LD_STRING 
9073: PPUSH
9074: CALL 8215 0 4
9078: ST_TO_ADDR
// vc_control = control_manual ;
9079: LD_ADDR_OWVAR 38
9083: PUSH
9084: LD_INT 1
9086: ST_TO_ADDR
// av = CreateVehicle ;
9087: LD_ADDR_LOC 6
9091: PUSH
9092: CALL_OW 45
9096: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9097: LD_LOC 5
9101: PPUSH
9102: LD_LOC 6
9106: PPUSH
9107: CALL_OW 52
// pom = pom ^ av ;
9111: LD_ADDR_LOC 8
9115: PUSH
9116: LD_LOC 8
9120: PUSH
9121: LD_LOC 6
9125: ADD
9126: ST_TO_ADDR
// end ; RUSSIAN_AFTER_END_ATTACK_LIST2 = pom ;
9127: LD_ADDR_EXP 19
9131: PUSH
9132: LD_LOC 8
9136: ST_TO_ADDR
// pom = [ ] ;
9137: LD_ADDR_LOC 8
9141: PUSH
9142: EMPTY
9143: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9144: LD_ADDR_LOC 8
9148: PUSH
9149: LD_LOC 8
9153: PUSH
9154: CALL 8273 0 0
9158: PPUSH
9159: LD_INT 9
9161: PPUSH
9162: LD_EXP 59
9166: PUSH
9167: LD_OWVAR 67
9171: ARRAY
9172: PPUSH
9173: LD_STRING 
9175: PPUSH
9176: CALL 8215 0 4
9180: ADD
9181: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9182: LD_ADDR_LOC 8
9186: PUSH
9187: LD_LOC 8
9191: PUSH
9192: CALL 8273 0 0
9196: PPUSH
9197: LD_INT 9
9199: PPUSH
9200: LD_EXP 59
9204: PUSH
9205: LD_OWVAR 67
9209: ARRAY
9210: PPUSH
9211: LD_STRING 
9213: PPUSH
9214: CALL 8215 0 4
9218: ADD
9219: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9220: LD_ADDR_LOC 8
9224: PUSH
9225: LD_LOC 8
9229: PUSH
9230: CALL 8273 0 0
9234: PPUSH
9235: LD_INT 9
9237: PPUSH
9238: LD_EXP 59
9242: PUSH
9243: LD_OWVAR 67
9247: ARRAY
9248: PPUSH
9249: LD_STRING 
9251: PPUSH
9252: CALL 8215 0 4
9256: ADD
9257: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
9258: LD_ADDR_LOC 8
9262: PUSH
9263: LD_LOC 8
9267: PUSH
9268: CALL 8273 0 0
9272: PPUSH
9273: LD_INT 1
9275: PPUSH
9276: LD_EXP 59
9280: PUSH
9281: LD_OWVAR 67
9285: ARRAY
9286: PPUSH
9287: LD_STRING 
9289: PPUSH
9290: CALL 8215 0 4
9294: ADD
9295: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9296: LD_ADDR_LOC 5
9300: PUSH
9301: CALL 8273 0 0
9305: PPUSH
9306: LD_INT 3
9308: PPUSH
9309: LD_EXP 59
9313: PUSH
9314: LD_OWVAR 67
9318: ARRAY
9319: PPUSH
9320: LD_STRING 
9322: PPUSH
9323: CALL 8215 0 4
9327: ST_TO_ADDR
// vc_control = control_manual ;
9328: LD_ADDR_OWVAR 38
9332: PUSH
9333: LD_INT 1
9335: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
9336: LD_ADDR_OWVAR 40
9340: PUSH
9341: LD_EXP 61
9345: PUSH
9346: LD_OWVAR 67
9350: ARRAY
9351: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
9352: LD_ADDR_OWVAR 37
9356: PUSH
9357: LD_INT 24
9359: ST_TO_ADDR
// vc_engine = engine_siberite ;
9360: LD_ADDR_OWVAR 39
9364: PUSH
9365: LD_INT 3
9367: ST_TO_ADDR
// av = CreateVehicle ;
9368: LD_ADDR_LOC 6
9372: PUSH
9373: CALL_OW 45
9377: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9378: LD_LOC 5
9382: PPUSH
9383: LD_LOC 6
9387: PPUSH
9388: CALL_OW 52
// pom = pom ^ av ;
9392: LD_ADDR_LOC 8
9396: PUSH
9397: LD_LOC 8
9401: PUSH
9402: LD_LOC 6
9406: ADD
9407: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9408: LD_ADDR_LOC 5
9412: PUSH
9413: CALL 8273 0 0
9417: PPUSH
9418: LD_INT 3
9420: PPUSH
9421: LD_EXP 59
9425: PUSH
9426: LD_OWVAR 67
9430: ARRAY
9431: PPUSH
9432: LD_STRING 
9434: PPUSH
9435: CALL 8215 0 4
9439: ST_TO_ADDR
// av = CreateVehicle ;
9440: LD_ADDR_LOC 6
9444: PUSH
9445: CALL_OW 45
9449: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9450: LD_LOC 5
9454: PPUSH
9455: LD_LOC 6
9459: PPUSH
9460: CALL_OW 52
// pom = pom ^ av ;
9464: LD_ADDR_LOC 8
9468: PUSH
9469: LD_LOC 8
9473: PUSH
9474: LD_LOC 6
9478: ADD
9479: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9480: LD_ADDR_LOC 5
9484: PUSH
9485: CALL 8273 0 0
9489: PPUSH
9490: LD_INT 3
9492: PPUSH
9493: LD_EXP 59
9497: PUSH
9498: LD_OWVAR 67
9502: ARRAY
9503: PPUSH
9504: LD_STRING 
9506: PPUSH
9507: CALL 8215 0 4
9511: ST_TO_ADDR
// av = CreateVehicle ;
9512: LD_ADDR_LOC 6
9516: PUSH
9517: CALL_OW 45
9521: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9522: LD_LOC 5
9526: PPUSH
9527: LD_LOC 6
9531: PPUSH
9532: CALL_OW 52
// pom = pom ^ av ;
9536: LD_ADDR_LOC 8
9540: PUSH
9541: LD_LOC 8
9545: PUSH
9546: LD_LOC 6
9550: ADD
9551: ST_TO_ADDR
// if pom > 1 then
9552: LD_LOC 8
9556: PUSH
9557: LD_INT 1
9559: GREATER
9560: IFFALSE 9634
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9562: LD_ADDR_LOC 5
9566: PUSH
9567: CALL 8273 0 0
9571: PPUSH
9572: LD_INT 3
9574: PPUSH
9575: LD_EXP 59
9579: PUSH
9580: LD_OWVAR 67
9584: ARRAY
9585: PPUSH
9586: LD_STRING 
9588: PPUSH
9589: CALL 8215 0 4
9593: ST_TO_ADDR
// av = CreateVehicle ;
9594: LD_ADDR_LOC 6
9598: PUSH
9599: CALL_OW 45
9603: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9604: LD_LOC 5
9608: PPUSH
9609: LD_LOC 6
9613: PPUSH
9614: CALL_OW 52
// pom = pom ^ av ;
9618: LD_ADDR_LOC 8
9622: PUSH
9623: LD_LOC 8
9627: PUSH
9628: LD_LOC 6
9632: ADD
9633: ST_TO_ADDR
// end ; vc_weapon = ru_rocket ;
9634: LD_ADDR_OWVAR 40
9638: PUSH
9639: LD_INT 47
9641: ST_TO_ADDR
// vc_control = control_computer ;
9642: LD_ADDR_OWVAR 38
9646: PUSH
9647: LD_INT 3
9649: ST_TO_ADDR
// av = CreateVehicle ;
9650: LD_ADDR_LOC 6
9654: PUSH
9655: CALL_OW 45
9659: ST_TO_ADDR
// pom = pom ^ av ;
9660: LD_ADDR_LOC 8
9664: PUSH
9665: LD_LOC 8
9669: PUSH
9670: LD_LOC 6
9674: ADD
9675: ST_TO_ADDR
// if pom > 1 then
9676: LD_LOC 8
9680: PUSH
9681: LD_INT 1
9683: GREATER
9684: IFFALSE 9712
// begin av = CreateVehicle ;
9686: LD_ADDR_LOC 6
9690: PUSH
9691: CALL_OW 45
9695: ST_TO_ADDR
// pom = pom ^ av ;
9696: LD_ADDR_LOC 8
9700: PUSH
9701: LD_LOC 8
9705: PUSH
9706: LD_LOC 6
9710: ADD
9711: ST_TO_ADDR
// end ; RUSSIAN_AFTER_END_ATTACK_LIST_FINAL = pom ;
9712: LD_ADDR_EXP 20
9716: PUSH
9717: LD_LOC 8
9721: ST_TO_ADDR
// end ;
9722: LD_VAR 0 1
9726: RET
// export function create_kecal ; begin
9727: LD_INT 0
9729: PPUSH
// uc_side := You ;
9730: LD_ADDR_OWVAR 20
9734: PUSH
9735: LD_EXP 3
9739: ST_TO_ADDR
// uc_nation := nation_american ;
9740: LD_ADDR_OWVAR 21
9744: PUSH
9745: LD_INT 1
9747: ST_TO_ADDR
// ah = get_human ( sex_female , class_soldier , 5 , Linda Violet ) ;
9748: LD_ADDR_LOC 5
9752: PUSH
9753: LD_INT 2
9755: PPUSH
9756: LD_INT 1
9758: PPUSH
9759: LD_INT 5
9761: PPUSH
9762: LD_STRING Linda Violet
9764: PPUSH
9765: CALL 8215 0 4
9769: ST_TO_ADDR
// result := ah ;
9770: LD_ADDR_VAR 0 1
9774: PUSH
9775: LD_LOC 5
9779: ST_TO_ADDR
// end ;
9780: LD_VAR 0 1
9784: RET
// export function create_ruske_bazukery ; var pomp ; begin
9785: LD_INT 0
9787: PPUSH
9788: PPUSH
// uc_side := Rusi ;
9789: LD_ADDR_OWVAR 20
9793: PUSH
9794: LD_EXP 2
9798: ST_TO_ADDR
// uc_nation := nation_russian ;
9799: LD_ADDR_OWVAR 21
9803: PUSH
9804: LD_INT 3
9806: ST_TO_ADDR
// pomp = get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9807: LD_ADDR_VAR 0 2
9811: PUSH
9812: CALL 8273 0 0
9816: PPUSH
9817: LD_INT 9
9819: PPUSH
9820: LD_EXP 59
9824: PUSH
9825: LD_OWVAR 67
9829: ARRAY
9830: PPUSH
9831: LD_STRING 
9833: PPUSH
9834: CALL 8215 0 4
9838: ST_TO_ADDR
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9839: LD_ADDR_VAR 0 2
9843: PUSH
9844: LD_VAR 0 2
9848: PUSH
9849: CALL 8273 0 0
9853: PPUSH
9854: LD_INT 9
9856: PPUSH
9857: LD_EXP 59
9861: PUSH
9862: LD_OWVAR 67
9866: ARRAY
9867: PPUSH
9868: LD_STRING 
9870: PPUSH
9871: CALL 8215 0 4
9875: ADD
9876: ST_TO_ADDR
// if difficulty > 1 then
9877: LD_OWVAR 67
9881: PUSH
9882: LD_INT 1
9884: GREATER
9885: IFFALSE 9925
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9887: LD_ADDR_VAR 0 2
9891: PUSH
9892: LD_VAR 0 2
9896: PUSH
9897: CALL 8273 0 0
9901: PPUSH
9902: LD_INT 9
9904: PPUSH
9905: LD_EXP 59
9909: PUSH
9910: LD_OWVAR 67
9914: ARRAY
9915: PPUSH
9916: LD_STRING 
9918: PPUSH
9919: CALL 8215 0 4
9923: ADD
9924: ST_TO_ADDR
// if difficulty > 2 then
9925: LD_OWVAR 67
9929: PUSH
9930: LD_INT 2
9932: GREATER
9933: IFFALSE 9973
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9935: LD_ADDR_VAR 0 2
9939: PUSH
9940: LD_VAR 0 2
9944: PUSH
9945: CALL 8273 0 0
9949: PPUSH
9950: LD_INT 9
9952: PPUSH
9953: LD_EXP 59
9957: PUSH
9958: LD_OWVAR 67
9962: ARRAY
9963: PPUSH
9964: LD_STRING 
9966: PPUSH
9967: CALL 8215 0 4
9971: ADD
9972: ST_TO_ADDR
// pomp = get_human ( get_sex , class_soldier , Rand ( 1 , 1 + difficulty ) ,  ) ;
9973: LD_ADDR_VAR 0 2
9977: PUSH
9978: CALL 8273 0 0
9982: PPUSH
9983: LD_INT 1
9985: PPUSH
9986: LD_INT 1
9988: PPUSH
9989: LD_INT 1
9991: PUSH
9992: LD_OWVAR 67
9996: PLUS
9997: PPUSH
9998: CALL_OW 12
10002: PPUSH
10003: LD_STRING 
10005: PPUSH
10006: CALL 8215 0 4
10010: ST_TO_ADDR
// result := pomp ;
10011: LD_ADDR_VAR 0 1
10015: PUSH
10016: LD_VAR 0 2
10020: ST_TO_ADDR
// end ;
10021: LD_VAR 0 1
10025: RET
// export function create_mechaniky_navic ; var pom ; begin
10026: LD_INT 0
10028: PPUSH
10029: PPUSH
// uc_side := Rusi ;
10030: LD_ADDR_OWVAR 20
10034: PUSH
10035: LD_EXP 2
10039: ST_TO_ADDR
// uc_nation = nation_russian ;
10040: LD_ADDR_OWVAR 21
10044: PUSH
10045: LD_INT 3
10047: ST_TO_ADDR
// pom = [ ] ;
10048: LD_ADDR_VAR 0 2
10052: PUSH
10053: EMPTY
10054: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10055: LD_ADDR_VAR 0 2
10059: PUSH
10060: LD_VAR 0 2
10064: PUSH
10065: CALL 8273 0 0
10069: PPUSH
10070: LD_INT 3
10072: PPUSH
10073: LD_EXP 59
10077: PUSH
10078: LD_OWVAR 67
10082: ARRAY
10083: PPUSH
10084: LD_STRING 
10086: PPUSH
10087: CALL 8215 0 4
10091: ADD
10092: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10093: LD_ADDR_VAR 0 2
10097: PUSH
10098: LD_VAR 0 2
10102: PUSH
10103: CALL 8273 0 0
10107: PPUSH
10108: LD_INT 3
10110: PPUSH
10111: LD_EXP 59
10115: PUSH
10116: LD_OWVAR 67
10120: ARRAY
10121: PPUSH
10122: LD_STRING 
10124: PPUSH
10125: CALL 8215 0 4
10129: ADD
10130: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10131: LD_ADDR_VAR 0 2
10135: PUSH
10136: LD_VAR 0 2
10140: PUSH
10141: CALL 8273 0 0
10145: PPUSH
10146: LD_INT 3
10148: PPUSH
10149: LD_EXP 59
10153: PUSH
10154: LD_OWVAR 67
10158: ARRAY
10159: PPUSH
10160: LD_STRING 
10162: PPUSH
10163: CALL 8215 0 4
10167: ADD
10168: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10169: LD_ADDR_VAR 0 2
10173: PUSH
10174: LD_VAR 0 2
10178: PUSH
10179: CALL 8273 0 0
10183: PPUSH
10184: LD_INT 3
10186: PPUSH
10187: LD_EXP 59
10191: PUSH
10192: LD_OWVAR 67
10196: ARRAY
10197: PPUSH
10198: LD_STRING 
10200: PPUSH
10201: CALL 8215 0 4
10205: ADD
10206: ST_TO_ADDR
// MECHANICI_NAVIC = pom ;
10207: LD_ADDR_EXP 21
10211: PUSH
10212: LD_VAR 0 2
10216: ST_TO_ADDR
// end ;
10217: LD_VAR 0 1
10221: RET
// export function C_N_A ; var pom ; begin
10222: LD_INT 0
10224: PPUSH
10225: PPUSH
// uc_nation := nation_russian ;
10226: LD_ADDR_OWVAR 21
10230: PUSH
10231: LD_INT 3
10233: ST_TO_ADDR
// uc_side := Rusi ;
10234: LD_ADDR_OWVAR 20
10238: PUSH
10239: LD_EXP 2
10243: ST_TO_ADDR
// pom = [ ] ;
10244: LD_ADDR_VAR 0 2
10248: PUSH
10249: EMPTY
10250: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10251: LD_ADDR_VAR 0 2
10255: PUSH
10256: LD_VAR 0 2
10260: PUSH
10261: CALL 8273 0 0
10265: PPUSH
10266: LD_INT 9
10268: PPUSH
10269: LD_EXP 59
10273: PUSH
10274: LD_OWVAR 67
10278: ARRAY
10279: PPUSH
10280: LD_STRING 
10282: PPUSH
10283: CALL 8215 0 4
10287: ADD
10288: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10289: LD_ADDR_VAR 0 2
10293: PUSH
10294: LD_VAR 0 2
10298: PUSH
10299: CALL 8273 0 0
10303: PPUSH
10304: LD_INT 9
10306: PPUSH
10307: LD_EXP 59
10311: PUSH
10312: LD_OWVAR 67
10316: ARRAY
10317: PPUSH
10318: LD_STRING 
10320: PPUSH
10321: CALL 8215 0 4
10325: ADD
10326: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10327: LD_ADDR_VAR 0 2
10331: PUSH
10332: LD_VAR 0 2
10336: PUSH
10337: CALL 8273 0 0
10341: PPUSH
10342: LD_INT 9
10344: PPUSH
10345: LD_EXP 59
10349: PUSH
10350: LD_OWVAR 67
10354: ARRAY
10355: PPUSH
10356: LD_STRING 
10358: PPUSH
10359: CALL 8215 0 4
10363: ADD
10364: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
10365: LD_ADDR_VAR 0 2
10369: PUSH
10370: LD_VAR 0 2
10374: PUSH
10375: CALL 8273 0 0
10379: PPUSH
10380: LD_INT 1
10382: PPUSH
10383: LD_EXP 59
10387: PUSH
10388: LD_OWVAR 67
10392: ARRAY
10393: PPUSH
10394: LD_STRING 
10396: PPUSH
10397: CALL 8215 0 4
10401: ADD
10402: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10403: LD_ADDR_LOC 5
10407: PUSH
10408: CALL 8273 0 0
10412: PPUSH
10413: LD_INT 3
10415: PPUSH
10416: LD_EXP 59
10420: PUSH
10421: LD_OWVAR 67
10425: ARRAY
10426: PPUSH
10427: LD_STRING 
10429: PPUSH
10430: CALL 8215 0 4
10434: ST_TO_ADDR
// vc_control = control_manual ;
10435: LD_ADDR_OWVAR 38
10439: PUSH
10440: LD_INT 1
10442: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
10443: LD_ADDR_OWVAR 40
10447: PUSH
10448: LD_EXP 61
10452: PUSH
10453: LD_OWVAR 67
10457: ARRAY
10458: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
10459: LD_ADDR_OWVAR 37
10463: PUSH
10464: LD_INT 24
10466: ST_TO_ADDR
// vc_engine = engine_siberite ;
10467: LD_ADDR_OWVAR 39
10471: PUSH
10472: LD_INT 3
10474: ST_TO_ADDR
// av = CreateVehicle ;
10475: LD_ADDR_LOC 6
10479: PUSH
10480: CALL_OW 45
10484: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10485: LD_LOC 5
10489: PPUSH
10490: LD_LOC 6
10494: PPUSH
10495: CALL_OW 52
// pom = pom ^ av ;
10499: LD_ADDR_VAR 0 2
10503: PUSH
10504: LD_VAR 0 2
10508: PUSH
10509: LD_LOC 6
10513: ADD
10514: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10515: LD_ADDR_LOC 5
10519: PUSH
10520: CALL 8273 0 0
10524: PPUSH
10525: LD_INT 3
10527: PPUSH
10528: LD_EXP 59
10532: PUSH
10533: LD_OWVAR 67
10537: ARRAY
10538: PPUSH
10539: LD_STRING 
10541: PPUSH
10542: CALL 8215 0 4
10546: ST_TO_ADDR
// av = CreateVehicle ;
10547: LD_ADDR_LOC 6
10551: PUSH
10552: CALL_OW 45
10556: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10557: LD_LOC 5
10561: PPUSH
10562: LD_LOC 6
10566: PPUSH
10567: CALL_OW 52
// pom = pom ^ av ;
10571: LD_ADDR_VAR 0 2
10575: PUSH
10576: LD_VAR 0 2
10580: PUSH
10581: LD_LOC 6
10585: ADD
10586: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10587: LD_ADDR_LOC 5
10591: PUSH
10592: CALL 8273 0 0
10596: PPUSH
10597: LD_INT 3
10599: PPUSH
10600: LD_EXP 59
10604: PUSH
10605: LD_OWVAR 67
10609: ARRAY
10610: PPUSH
10611: LD_STRING 
10613: PPUSH
10614: CALL 8215 0 4
10618: ST_TO_ADDR
// av = CreateVehicle ;
10619: LD_ADDR_LOC 6
10623: PUSH
10624: CALL_OW 45
10628: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10629: LD_LOC 5
10633: PPUSH
10634: LD_LOC 6
10638: PPUSH
10639: CALL_OW 52
// pom = pom ^ av ;
10643: LD_ADDR_VAR 0 2
10647: PUSH
10648: LD_VAR 0 2
10652: PUSH
10653: LD_LOC 6
10657: ADD
10658: ST_TO_ADDR
// if pom > 1 then
10659: LD_VAR 0 2
10663: PUSH
10664: LD_INT 1
10666: GREATER
10667: IFFALSE 10741
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10669: LD_ADDR_LOC 5
10673: PUSH
10674: CALL 8273 0 0
10678: PPUSH
10679: LD_INT 3
10681: PPUSH
10682: LD_EXP 59
10686: PUSH
10687: LD_OWVAR 67
10691: ARRAY
10692: PPUSH
10693: LD_STRING 
10695: PPUSH
10696: CALL 8215 0 4
10700: ST_TO_ADDR
// av = CreateVehicle ;
10701: LD_ADDR_LOC 6
10705: PUSH
10706: CALL_OW 45
10710: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10711: LD_LOC 5
10715: PPUSH
10716: LD_LOC 6
10720: PPUSH
10721: CALL_OW 52
// pom = pom ^ av ;
10725: LD_ADDR_VAR 0 2
10729: PUSH
10730: LD_VAR 0 2
10734: PUSH
10735: LD_LOC 6
10739: ADD
10740: ST_TO_ADDR
// end ; vc_weapon = ru_rocket ;
10741: LD_ADDR_OWVAR 40
10745: PUSH
10746: LD_INT 47
10748: ST_TO_ADDR
// vc_control = control_computer ;
10749: LD_ADDR_OWVAR 38
10753: PUSH
10754: LD_INT 3
10756: ST_TO_ADDR
// av = CreateVehicle ;
10757: LD_ADDR_LOC 6
10761: PUSH
10762: CALL_OW 45
10766: ST_TO_ADDR
// pom = pom ^ av ;
10767: LD_ADDR_VAR 0 2
10771: PUSH
10772: LD_VAR 0 2
10776: PUSH
10777: LD_LOC 6
10781: ADD
10782: ST_TO_ADDR
// if pom > 1 then
10783: LD_VAR 0 2
10787: PUSH
10788: LD_INT 1
10790: GREATER
10791: IFFALSE 10845
// begin av = CreateVehicle ;
10793: LD_ADDR_LOC 6
10797: PUSH
10798: CALL_OW 45
10802: ST_TO_ADDR
// pom = pom ^ av ;
10803: LD_ADDR_VAR 0 2
10807: PUSH
10808: LD_VAR 0 2
10812: PUSH
10813: LD_LOC 6
10817: ADD
10818: ST_TO_ADDR
// av = CreateVehicle ;
10819: LD_ADDR_LOC 6
10823: PUSH
10824: CALL_OW 45
10828: ST_TO_ADDR
// pom = pom ^ av ;
10829: LD_ADDR_VAR 0 2
10833: PUSH
10834: LD_VAR 0 2
10838: PUSH
10839: LD_LOC 6
10843: ADD
10844: ST_TO_ADDR
// end ; result := pom ;
10845: LD_ADDR_VAR 0 1
10849: PUSH
10850: LD_VAR 0 2
10854: ST_TO_ADDR
// end ; end_of_file
10855: LD_VAR 0 1
10859: RET
// var pom ; var i ; export Dietrich ; export LS ; export tapkal ; export Arabi_Utoci ; var polozil ; var Autok ; var auta ; export UTEKLI_ARABI ; export arabsti_zradci_LIST ; every 0 0$0.5 do
10860: GO 10862
10862: DISABLE
// begin for i := 1 to 22 do
10863: LD_ADDR_LOC 13
10867: PUSH
10868: DOUBLE
10869: LD_INT 1
10871: DEC
10872: ST_TO_ADDR
10873: LD_INT 22
10875: PUSH
10876: FOR_TO
10877: IFFALSE 10886
// disable ( i ) ;
10879: LD_LOC 13
10883: DISABLE_MARKED
10884: GO 10876
10886: POP
10887: POP
// Arabi_utoci = false ;
10888: LD_ADDR_EXP 28
10892: PUSH
10893: LD_INT 0
10895: ST_TO_ADDR
// arabsti_zradci_LIST = [ ] ;
10896: LD_ADDR_EXP 30
10900: PUSH
10901: EMPTY
10902: ST_TO_ADDR
// end ;
10903: END
// every 0 0$1 do
10904: GO 10906
10906: DISABLE
// begin ComEnterUnit ( LS , Ar_lab ) ;
10907: LD_EXP 26
10911: PPUSH
10912: LD_INT 16
10914: PPUSH
10915: CALL_OW 120
// AddComChangeProfession ( LS , class_scientistic ) ;
10919: LD_EXP 26
10923: PPUSH
10924: LD_INT 4
10926: PPUSH
10927: CALL_OW 183
// ComEnterUnit ( tapkal , Ar_bar ) ;
10931: LD_EXP 27
10935: PPUSH
10936: LD_INT 18
10938: PPUSH
10939: CALL_OW 120
// ComEnterUnit ( Dietrich , Ar_bar ) ;
10943: LD_EXP 25
10947: PPUSH
10948: LD_INT 18
10950: PPUSH
10951: CALL_OW 120
// AddComChangeProfession ( Dietrich , class_soldier ) ;
10955: LD_EXP 25
10959: PPUSH
10960: LD_INT 1
10962: PPUSH
10963: CALL_OW 183
// pom = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) diff [ LS , Dietrich ] ;
10967: LD_ADDR_LOC 12
10971: PUSH
10972: LD_INT 22
10974: PUSH
10975: LD_EXP 1
10979: PUSH
10980: EMPTY
10981: LIST
10982: LIST
10983: PUSH
10984: LD_INT 21
10986: PUSH
10987: LD_INT 1
10989: PUSH
10990: EMPTY
10991: LIST
10992: LIST
10993: PUSH
10994: EMPTY
10995: LIST
10996: LIST
10997: PPUSH
10998: CALL_OW 69
11002: PUSH
11003: LD_EXP 26
11007: PUSH
11008: LD_EXP 25
11012: PUSH
11013: EMPTY
11014: LIST
11015: LIST
11016: DIFF
11017: ST_TO_ADDR
// if pom > 0 then
11018: LD_LOC 12
11022: PUSH
11023: LD_INT 0
11025: GREATER
11026: IFFALSE 11080
// begin ComEnterUnit ( pom [ 1 ] , Ar_lab ) ;
11028: LD_LOC 12
11032: PUSH
11033: LD_INT 1
11035: ARRAY
11036: PPUSH
11037: LD_INT 16
11039: PPUSH
11040: CALL_OW 120
// AddComChangeProfession ( pom [ 1 ] , class_scientistic ) ;
11044: LD_LOC 12
11048: PUSH
11049: LD_INT 1
11051: ARRAY
11052: PPUSH
11053: LD_INT 4
11055: PPUSH
11056: CALL_OW 183
// pom = pom diff pom [ 1 ] ;
11060: LD_ADDR_LOC 12
11064: PUSH
11065: LD_LOC 12
11069: PUSH
11070: LD_LOC 12
11074: PUSH
11075: LD_INT 1
11077: ARRAY
11078: DIFF
11079: ST_TO_ADDR
// end ; if pom > 0 then
11080: LD_LOC 12
11084: PUSH
11085: LD_INT 0
11087: GREATER
11088: IFFALSE 11142
// begin ComEnterUnit ( pom [ 1 ] , Ar_bar ) ;
11090: LD_LOC 12
11094: PUSH
11095: LD_INT 1
11097: ARRAY
11098: PPUSH
11099: LD_INT 18
11101: PPUSH
11102: CALL_OW 120
// AddComChangeProfession ( pom [ 1 ] , class_soldier ) ;
11106: LD_LOC 12
11110: PUSH
11111: LD_INT 1
11113: ARRAY
11114: PPUSH
11115: LD_INT 1
11117: PPUSH
11118: CALL_OW 183
// pom = pom diff pom [ 1 ] ;
11122: LD_ADDR_LOC 12
11126: PUSH
11127: LD_LOC 12
11131: PUSH
11132: LD_LOC 12
11136: PUSH
11137: LD_INT 1
11139: ARRAY
11140: DIFF
11141: ST_TO_ADDR
// end ; if pom > 0 then
11142: LD_LOC 12
11146: PUSH
11147: LD_INT 0
11149: GREATER
11150: IFFALSE 11176
// begin ComEnterUnit ( pom , Ar_dep ) ;
11152: LD_LOC 12
11156: PPUSH
11157: LD_INT 15
11159: PPUSH
11160: CALL_OW 120
// AddComChangeProfession ( pom , class_engineer ) ;
11164: LD_LOC 12
11168: PPUSH
11169: LD_INT 2
11171: PPUSH
11172: CALL_OW 183
// end ; AddCargo ( auto1 , mat_siberit , 20 ) ;
11176: LD_INT 20
11178: PPUSH
11179: LD_INT 3
11181: PPUSH
11182: LD_INT 20
11184: PPUSH
11185: CALL_OW 291
// AddCargo ( auto1 , mat_oil , 30 ) ;
11189: LD_INT 20
11191: PPUSH
11192: LD_INT 2
11194: PPUSH
11195: LD_INT 30
11197: PPUSH
11198: CALL_OW 291
// AddCargo ( auto2 , mat_cans , 40 ) ;
11202: LD_INT 21
11204: PPUSH
11205: LD_INT 1
11207: PPUSH
11208: LD_INT 40
11210: PPUSH
11211: CALL_OW 291
// AddCargo ( auto2 , mat_oil , 40 ) ;
11215: LD_INT 21
11217: PPUSH
11218: LD_INT 2
11220: PPUSH
11221: LD_INT 40
11223: PPUSH
11224: CALL_OW 291
// end ;
11228: END
// every 0 0$1 trigger Arabi_utoci = true do var arabi_v_zakladne ; var pp ; var un ;
11229: LD_EXP 28
11233: PUSH
11234: LD_INT 1
11236: EQUAL
11237: IFFALSE 11750
11239: GO 11241
11241: DISABLE
11242: LD_INT 0
11244: PPUSH
11245: PPUSH
11246: PPUSH
// begin Dial = 5 ;
11247: LD_ADDR_EXP 38
11251: PUSH
11252: LD_INT 5
11254: ST_TO_ADDR
// arabi_v_zakladne = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) ;
11255: LD_ADDR_VAR 0 1
11259: PUSH
11260: LD_INT 22
11262: PUSH
11263: LD_EXP 1
11267: PUSH
11268: EMPTY
11269: LIST
11270: LIST
11271: PUSH
11272: LD_INT 21
11274: PUSH
11275: LD_INT 1
11277: PUSH
11278: EMPTY
11279: LIST
11280: LIST
11281: PUSH
11282: EMPTY
11283: LIST
11284: LIST
11285: PPUSH
11286: CALL_OW 69
11290: ST_TO_ADDR
// arabsti_zradci_LIST = arabi_v_zakladne ;
11291: LD_ADDR_EXP 30
11295: PUSH
11296: LD_VAR 0 1
11300: ST_TO_ADDR
// ComExitBuilding ( arabi_v_zakladne ) ;
11301: LD_VAR 0 1
11305: PPUSH
11306: CALL_OW 122
// AddComEnterUnit ( arabi_v_zakladne , Ar_bar ) ;
11310: LD_VAR 0 1
11314: PPUSH
11315: LD_INT 18
11317: PPUSH
11318: CALL_OW 180
// AddComChangeProfession ( arabi_v_zakladne diff LS , class_mortar ) ;
11322: LD_VAR 0 1
11326: PUSH
11327: LD_EXP 26
11331: DIFF
11332: PPUSH
11333: LD_INT 8
11335: PPUSH
11336: CALL_OW 183
// AddComExitBuilding ( arabi_v_zakladne ) ;
11340: LD_VAR 0 1
11344: PPUSH
11345: CALL_OW 182
// AddComMoveXY ( arabi_v_zakladne , 76 , 20 ) ;
11349: LD_VAR 0 1
11353: PPUSH
11354: LD_INT 76
11356: PPUSH
11357: LD_INT 20
11359: PPUSH
11360: CALL_OW 171
// wait ( 0 0$3 ) ;
11364: LD_INT 105
11366: PPUSH
11367: CALL_OW 67
// prebarvi_araby ( arabi_v_zakladne ) ;
11371: LD_VAR 0 1
11375: PPUSH
11376: CALL 12103 0 1
// AddComMoveXY ( arabi_v_zakladne , 86 , 12 ) ;
11380: LD_VAR 0 1
11384: PPUSH
11385: LD_INT 86
11387: PPUSH
11388: LD_INT 12
11390: PPUSH
11391: CALL_OW 171
// wait ( cekani_zradnych_arabu_pred_utokem ) ;
11395: LD_EXP 69
11399: PPUSH
11400: CALL_OW 67
// enable ( 20 ) ;
11404: LD_INT 20
11406: ENABLE_MARKED
// wait ( cas_druzi_arabaci ) ;
11407: LD_EXP 70
11411: PPUSH
11412: CALL_OW 67
// create_ar_zradu ;
11416: CALL 6785 0 0
// Autok = FilterAllUnits ( [ [ f_side , Arabi2 ] ] ) ;
11420: LD_ADDR_LOC 15
11424: PUSH
11425: LD_INT 22
11427: PUSH
11428: LD_EXP 4
11432: PUSH
11433: EMPTY
11434: LIST
11435: LIST
11436: PUSH
11437: EMPTY
11438: LIST
11439: PPUSH
11440: CALL_OW 69
11444: ST_TO_ADDR
// ComAgressiveMove ( Autok , 104 , 25 ) ;
11445: LD_LOC 15
11449: PPUSH
11450: LD_INT 104
11452: PPUSH
11453: LD_INT 25
11455: PPUSH
11456: CALL_OW 114
// AddComAgressiveMove ( Autok , 99 , 36 ) ;
11460: LD_LOC 15
11464: PPUSH
11465: LD_INT 99
11467: PPUSH
11468: LD_INT 36
11470: PPUSH
11471: CALL_OW 174
// pp = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
11475: LD_ADDR_VAR 0 2
11479: PUSH
11480: LD_INT 22
11482: PUSH
11483: LD_EXP 3
11487: PUSH
11488: EMPTY
11489: LIST
11490: LIST
11491: PUSH
11492: LD_INT 2
11494: PUSH
11495: LD_INT 30
11497: PUSH
11498: LD_INT 0
11500: PUSH
11501: EMPTY
11502: LIST
11503: LIST
11504: PUSH
11505: LD_INT 30
11507: PUSH
11508: LD_INT 1
11510: PUSH
11511: EMPTY
11512: LIST
11513: LIST
11514: PUSH
11515: EMPTY
11516: LIST
11517: LIST
11518: LIST
11519: PUSH
11520: EMPTY
11521: LIST
11522: LIST
11523: PPUSH
11524: CALL_OW 69
11528: ST_TO_ADDR
// if pp > 0 then
11529: LD_VAR 0 2
11533: PUSH
11534: LD_INT 0
11536: GREATER
11537: IFFALSE 11576
// AddComAgressiveMove ( Autok , GetX ( pp [ 1 ] ) , GetY ( pp [ 1 ] ) ) ;
11539: LD_LOC 15
11543: PPUSH
11544: LD_VAR 0 2
11548: PUSH
11549: LD_INT 1
11551: ARRAY
11552: PPUSH
11553: CALL_OW 250
11557: PPUSH
11558: LD_VAR 0 2
11562: PUSH
11563: LD_INT 1
11565: ARRAY
11566: PPUSH
11567: CALL_OW 251
11571: PPUSH
11572: CALL_OW 174
// pp = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
11576: LD_ADDR_VAR 0 2
11580: PUSH
11581: LD_INT 22
11583: PUSH
11584: LD_EXP 3
11588: PUSH
11589: EMPTY
11590: LIST
11591: LIST
11592: PUSH
11593: LD_INT 21
11595: PUSH
11596: LD_INT 3
11598: PUSH
11599: EMPTY
11600: LIST
11601: LIST
11602: PUSH
11603: EMPTY
11604: LIST
11605: LIST
11606: PPUSH
11607: CALL_OW 69
11611: ST_TO_ADDR
// if pp > 0 then
11612: LD_VAR 0 2
11616: PUSH
11617: LD_INT 0
11619: GREATER
11620: IFFALSE 11750
// begin un = NearestUnitToUnit ( tapkal , pp ) ;
11622: LD_ADDR_VAR 0 3
11626: PUSH
11627: LD_EXP 27
11631: PPUSH
11632: LD_VAR 0 2
11636: PPUSH
11637: CALL_OW 74
11641: ST_TO_ADDR
// ComExitBuilding ( tapkal ) ;
11642: LD_EXP 27
11646: PPUSH
11647: CALL_OW 122
// AddComPlaceRemoteCharge ( tapkal , 0 , 0 , un ) ;
11651: LD_EXP 27
11655: PPUSH
11656: LD_INT 0
11658: PPUSH
11659: LD_INT 0
11661: PPUSH
11662: LD_VAR 0 3
11666: PPUSH
11667: CALL_OW 193
// AddComPlaceDelayedCharge ( tapkal , GetX ( un ) + 1 , GetY ( un ) + 1 , 0 ) ;
11671: LD_EXP 27
11675: PPUSH
11676: LD_VAR 0 3
11680: PPUSH
11681: CALL_OW 250
11685: PUSH
11686: LD_INT 1
11688: PLUS
11689: PPUSH
11690: LD_VAR 0 3
11694: PPUSH
11695: CALL_OW 251
11699: PUSH
11700: LD_INT 1
11702: PLUS
11703: PPUSH
11704: LD_INT 0
11706: PPUSH
11707: CALL_OW 192
// AddComMoveXY ( tapkal , 78 , 10 ) ;
11711: LD_EXP 27
11715: PPUSH
11716: LD_INT 78
11718: PPUSH
11719: LD_INT 10
11721: PPUSH
11722: CALL_OW 171
// AddComFireExplosives ( tapkal ) ;
11726: LD_EXP 27
11730: PPUSH
11731: CALL_OW 194
// AddComAgressiveMove ( tapkal , 128 , 19 ) ;
11735: LD_EXP 27
11739: PPUSH
11740: LD_INT 128
11742: PPUSH
11743: LD_INT 19
11745: PPUSH
11746: CALL_OW 174
// end ; end ;
11750: PPOPN 3
11752: END
// every 0 0$4 marked 20 do var pomarabi ;
11753: GO 11755
11755: DISABLE
11756: LD_INT 0
11758: PPUSH
// begin if FilterUnitsInArea ( Mortari , [ [ f_side , Arabi3 ] ] ) > 0 then
11759: LD_INT 27
11761: PPUSH
11762: LD_INT 22
11764: PUSH
11765: LD_EXP 7
11769: PUSH
11770: EMPTY
11771: LIST
11772: LIST
11773: PUSH
11774: EMPTY
11775: LIST
11776: PPUSH
11777: CALL_OW 70
11781: PUSH
11782: LD_INT 0
11784: GREATER
11785: IFFALSE 11839
// begin wait ( 0 0$25 ) ;
11787: LD_INT 875
11789: PPUSH
11790: CALL_OW 67
// enable ( 21 ) ;
11794: LD_INT 21
11796: ENABLE_MARKED
// pomarabi = FilterAllUnits ( [ [ f_side , Arabi3 ] ] ) ;
11797: LD_ADDR_VAR 0 1
11801: PUSH
11802: LD_INT 22
11804: PUSH
11805: LD_EXP 7
11809: PUSH
11810: EMPTY
11811: LIST
11812: LIST
11813: PUSH
11814: EMPTY
11815: LIST
11816: PPUSH
11817: CALL_OW 69
11821: ST_TO_ADDR
// AddComMoveXY ( pomarabi , 129 , 20 ) ;
11822: LD_VAR 0 1
11826: PPUSH
11827: LD_INT 129
11829: PPUSH
11830: LD_INT 20
11832: PPUSH
11833: CALL_OW 171
// end else
11837: GO 11840
// enable ;
11839: ENABLE
// end ;
11840: PPOPN 1
11842: END
// every 0 0$1 marked 21 do
11843: GO 11845
11845: DISABLE
// begin pom = FilterUnitsInArea ( REUTEK , [ [ f_side , Arabi3 ] ] ) ;
11846: LD_ADDR_LOC 12
11850: PUSH
11851: LD_INT 28
11853: PPUSH
11854: LD_INT 22
11856: PUSH
11857: LD_EXP 7
11861: PUSH
11862: EMPTY
11863: LIST
11864: LIST
11865: PUSH
11866: EMPTY
11867: LIST
11868: PPUSH
11869: CALL_OW 70
11873: ST_TO_ADDR
// if pom > 0 then
11874: LD_LOC 12
11878: PUSH
11879: LD_INT 0
11881: GREATER
11882: IFFALSE 11911
// begin RemoveUnit ( pom [ 1 ] ) ;
11884: LD_LOC 12
11888: PUSH
11889: LD_INT 1
11891: ARRAY
11892: PPUSH
11893: CALL_OW 64
// UTEKLI_ARABI := UTEKLI_ARABI + 1 ;
11897: LD_ADDR_EXP 29
11901: PUSH
11902: LD_EXP 29
11906: PUSH
11907: LD_INT 1
11909: PLUS
11910: ST_TO_ADDR
// end ; enable ;
11911: ENABLE
// end ;
11912: END
// every 0 0$20 do
11913: GO 11915
11915: DISABLE
// begin pom = UnitsInside ( Ar_lab ) ;
11916: LD_ADDR_LOC 12
11920: PUSH
11921: LD_INT 16
11923: PPUSH
11924: CALL_OW 313
11928: ST_TO_ADDR
// if pom > 0 then
11929: LD_LOC 12
11933: PUSH
11934: LD_INT 0
11936: GREATER
11937: IFFALSE 11951
// ComResearch ( Ar_lab , tech_Sib1 ) else
11939: LD_INT 16
11941: PPUSH
11942: LD_INT 54
11944: PPUSH
11945: CALL_OW 124
11949: GO 11952
// enable ;
11951: ENABLE
// end ;
11952: END
// every 0 0$45 trigger GetTech ( tech_Sib1 , Arabi ) = state_researched do
11953: LD_INT 54
11955: PPUSH
11956: LD_EXP 1
11960: PPUSH
11961: CALL_OW 321
11965: PUSH
11966: LD_INT 2
11968: EQUAL
11969: IFFALSE 11991
11971: GO 11973
11973: DISABLE
// begin wait ( 1 1$0 ) ;
11974: LD_INT 2100
11976: PPUSH
11977: CALL_OW 67
// ComResearch ( Ar_lab , tech_Sib2 ) ;
11981: LD_INT 16
11983: PPUSH
11984: LD_INT 55
11986: PPUSH
11987: CALL_OW 124
// end ;
11991: END
// every 0 0$43 trigger GetTech ( tech_Sib2 , Arabi ) = state_researched do
11992: LD_INT 55
11994: PPUSH
11995: LD_EXP 1
11999: PPUSH
12000: CALL_OW 321
12004: PUSH
12005: LD_INT 2
12007: EQUAL
12008: IFFALSE 12045
12010: GO 12012
12012: DISABLE
// begin wait ( 1 1$0 ) ;
12013: LD_INT 2100
12015: PPUSH
12016: CALL_OW 67
// SetTech ( tech_Sib3 , Arabi , state_enabled ) ;
12020: LD_INT 56
12022: PPUSH
12023: LD_EXP 1
12027: PPUSH
12028: LD_INT 1
12030: PPUSH
12031: CALL_OW 322
// ComResearch ( Ar_lab , tech_Sib3 ) ;
12035: LD_INT 16
12037: PPUSH
12038: LD_INT 56
12040: PPUSH
12041: CALL_OW 124
// end ;
12045: END
// every 0 0$13 trigger GetTech ( tech_Sib1 , You ) = state_researched do
12046: LD_INT 54
12048: PPUSH
12049: LD_EXP 3
12053: PPUSH
12054: CALL_OW 321
12058: PUSH
12059: LD_INT 2
12061: EQUAL
12062: IFFALSE 12075
12064: GO 12066
12066: DISABLE
// begin arabi_utoci = true ;
12067: LD_ADDR_EXP 28
12071: PUSH
12072: LD_INT 1
12074: ST_TO_ADDR
// end ;
12075: END
// every 0 0$1 do
12076: GO 12078
12078: DISABLE
// begin wait ( arabsky_utok_prichod [ difficulty ] ) ;
12079: LD_EXP 79
12083: PUSH
12084: LD_OWVAR 67
12088: ARRAY
12089: PPUSH
12090: CALL_OW 67
// Arabi_utoci = true ;
12094: LD_ADDR_EXP 28
12098: PUSH
12099: LD_INT 1
12101: ST_TO_ADDR
// end ;
12102: END
// function prebarvi_Araby ( people ) ; var i ; var poc ; begin
12103: LD_INT 0
12105: PPUSH
12106: PPUSH
12107: PPUSH
// poc = 0 ;
12108: LD_ADDR_VAR 0 4
12112: PUSH
12113: LD_INT 0
12115: ST_TO_ADDR
// while FilterUnitsExceptArea ( APU , [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) > 0 and poc < 8 do
12116: LD_INT 32
12118: PPUSH
12119: LD_INT 22
12121: PUSH
12122: LD_EXP 1
12126: PUSH
12127: EMPTY
12128: LIST
12129: LIST
12130: PUSH
12131: LD_INT 21
12133: PUSH
12134: LD_INT 1
12136: PUSH
12137: EMPTY
12138: LIST
12139: LIST
12140: PUSH
12141: EMPTY
12142: LIST
12143: LIST
12144: PPUSH
12145: CALL_OW 71
12149: PUSH
12150: LD_INT 0
12152: GREATER
12153: PUSH
12154: LD_VAR 0 4
12158: PUSH
12159: LD_INT 8
12161: LESS
12162: AND
12163: IFFALSE 12188
// begin wait ( 0 0$1 ) ;
12165: LD_INT 35
12167: PPUSH
12168: CALL_OW 67
// poc = poc + 1 ;
12172: LD_ADDR_VAR 0 4
12176: PUSH
12177: LD_VAR 0 4
12181: PUSH
12182: LD_INT 1
12184: PLUS
12185: ST_TO_ADDR
// end ;
12186: GO 12116
// for i in people do
12188: LD_ADDR_VAR 0 3
12192: PUSH
12193: LD_VAR 0 1
12197: PUSH
12198: FOR_IN
12199: IFFALSE 12319
// begin while not ( GetClass ( i ) = class_mortar or i = LS or i = tapkal ) do
12201: LD_VAR 0 3
12205: PPUSH
12206: CALL_OW 257
12210: PUSH
12211: LD_INT 8
12213: EQUAL
12214: PUSH
12215: LD_VAR 0 3
12219: PUSH
12220: LD_EXP 26
12224: EQUAL
12225: OR
12226: PUSH
12227: LD_VAR 0 3
12231: PUSH
12232: LD_EXP 27
12236: EQUAL
12237: OR
12238: NOT
12239: IFFALSE 12274
// begin ComEnterUnit ( i , Ar_bar ) ;
12241: LD_VAR 0 3
12245: PPUSH
12246: LD_INT 18
12248: PPUSH
12249: CALL_OW 120
// AddComChangeProfession ( i , class_mortar ) ;
12253: LD_VAR 0 3
12257: PPUSH
12258: LD_INT 8
12260: PPUSH
12261: CALL_OW 183
// wait ( 0 0$1 ) ;
12265: LD_INT 35
12267: PPUSH
12268: CALL_OW 67
// end ;
12272: GO 12201
// while IsInUnit ( i ) do
12274: LD_VAR 0 3
12278: PPUSH
12279: CALL_OW 310
12283: IFFALSE 12303
// begin wait ( 0 0$1 ) ;
12285: LD_INT 35
12287: PPUSH
12288: CALL_OW 67
// ComExitBuilding ( i ) ;
12292: LD_VAR 0 3
12296: PPUSH
12297: CALL_OW 122
// end ;
12301: GO 12274
// SetSide ( i , Arabi3 ) ;
12303: LD_VAR 0 3
12307: PPUSH
12308: LD_EXP 7
12312: PPUSH
12313: CALL_OW 235
// end ;
12317: GO 12198
12319: POP
12320: POP
// end ;
12321: LD_VAR 0 2
12325: RET
// on VehicleCaptured ( vnew , vold , origside , hum ) do begin if origside = Arabi and Getside ( hum ) = You then
12326: LD_VAR 0 3
12330: PUSH
12331: LD_EXP 1
12335: EQUAL
12336: PUSH
12337: LD_VAR 0 4
12341: PPUSH
12342: CALL_OW 255
12346: PUSH
12347: LD_EXP 3
12351: EQUAL
12352: AND
12353: IFFALSE 12363
// END_ATTACK = true ;
12355: LD_ADDR_EXP 55
12359: PUSH
12360: LD_INT 1
12362: ST_TO_ADDR
// enable ;
12363: ENABLE
// end ;
12364: PPOPN 4
12366: END
// every 4 4$0 trigger not Arabi_utoci do
12367: LD_EXP 28
12371: NOT
12372: IFFALSE 12459
12374: GO 12376
12376: DISABLE
// begin ComExitBuilding ( tapkal ) ;
12377: LD_EXP 27
12381: PPUSH
12382: CALL_OW 122
// AddComMoveXY ( tapkal , 84 , 20 ) ;
12386: LD_EXP 27
12390: PPUSH
12391: LD_INT 84
12393: PPUSH
12394: LD_INT 20
12396: PPUSH
12397: CALL_OW 171
// AddComMoveXY ( tapkal , 108 , 40 ) ;
12401: LD_EXP 27
12405: PPUSH
12406: LD_INT 108
12408: PPUSH
12409: LD_INT 40
12411: PPUSH
12412: CALL_OW 171
// AddComMoveXY ( tapkal , 82 , 36 ) ;
12416: LD_EXP 27
12420: PPUSH
12421: LD_INT 82
12423: PPUSH
12424: LD_INT 36
12426: PPUSH
12427: CALL_OW 171
// AddComMoveXY ( tapkal , 77 , 22 ) ;
12431: LD_EXP 27
12435: PPUSH
12436: LD_INT 77
12438: PPUSH
12439: LD_INT 22
12441: PPUSH
12442: CALL_OW 171
// AddComEnterUnit ( tapkal , Ar_bar ) ;
12446: LD_EXP 27
12450: PPUSH
12451: LD_INT 18
12453: PPUSH
12454: CALL_OW 180
// enable ;
12458: ENABLE
// end ;
12459: END
// every 3 3$50 trigger not Arabi_utoci do
12460: LD_EXP 28
12464: NOT
12465: IFFALSE 12642
12467: GO 12469
12469: DISABLE
// begin ComExitBuilding ( LS ) ;
12470: LD_EXP 26
12474: PPUSH
12475: CALL_OW 122
// AddComMoveXY ( LS , 72 , 23 ) ;
12479: LD_EXP 26
12483: PPUSH
12484: LD_INT 72
12486: PPUSH
12487: LD_INT 23
12489: PPUSH
12490: CALL_OW 171
// AddComWait ( LS , 0 0$3 ) ;
12494: LD_EXP 26
12498: PPUSH
12499: LD_INT 105
12501: PPUSH
12502: CALL_OW 202
// AddComEnterUnit ( LS , Ar_dep ) ;
12506: LD_EXP 26
12510: PPUSH
12511: LD_INT 15
12513: PPUSH
12514: CALL_OW 180
// AddComChangeProfession ( LS , class_engineer ) ;
12518: LD_EXP 26
12522: PPUSH
12523: LD_INT 2
12525: PPUSH
12526: CALL_OW 183
// if Arabi_utoci then
12530: LD_EXP 28
12534: IFFALSE 12538
// exit ;
12536: GO 12642
// Wait ( 0 0$15 ) ;
12538: LD_INT 525
12540: PPUSH
12541: CALL_OW 67
// if Arabi_utoci then
12545: LD_EXP 28
12549: IFFALSE 12553
// exit ;
12551: GO 12642
// ComExitBuilding ( LS ) ;
12553: LD_EXP 26
12557: PPUSH
12558: CALL_OW 122
// AddComEnterUnit ( LS , Ar_bar ) ;
12562: LD_EXP 26
12566: PPUSH
12567: LD_INT 18
12569: PPUSH
12570: CALL_OW 180
// AddComChangeProfession ( LS , class_soldier ) ;
12574: LD_EXP 26
12578: PPUSH
12579: LD_INT 1
12581: PPUSH
12582: CALL_OW 183
// if Arabi_utoci then
12586: LD_EXP 28
12590: IFFALSE 12594
// exit ;
12592: GO 12642
// Wait ( 0 0$20 ) ;
12594: LD_INT 700
12596: PPUSH
12597: CALL_OW 67
// if Arabi_utoci then
12601: LD_EXP 28
12605: IFFALSE 12609
// exit ;
12607: GO 12642
// ComExitBuilding ( LS ) ;
12609: LD_EXP 26
12613: PPUSH
12614: CALL_OW 122
// AddComEnterUnit ( LS , Ar_lab ) ;
12618: LD_EXP 26
12622: PPUSH
12623: LD_INT 16
12625: PPUSH
12626: CALL_OW 180
// AddComChangeProfession ( LS , class_scientistic ) ;
12630: LD_EXP 26
12634: PPUSH
12635: LD_INT 4
12637: PPUSH
12638: CALL_OW 183
// end ; end_of_file
12642: END
// var konvoj ; export Amici_enter ; export Amici_ar ; every 1 1$0 trigger Dial > 0 do
12643: LD_EXP 38
12647: PUSH
12648: LD_INT 0
12650: GREATER
12651: IFFALSE 12693
12653: GO 12655
12655: DISABLE
// begin wait ( Rand ( 1 , 7200 ) ) ;
12656: LD_INT 1
12658: PPUSH
12659: LD_INT 7200
12661: PPUSH
12662: CALL_OW 12
12666: PPUSH
12667: CALL_OW 67
// CreateCratesArea ( Rand ( 3 , 5 ) , Base2 , true ) ;
12671: LD_INT 3
12673: PPUSH
12674: LD_INT 5
12676: PPUSH
12677: CALL_OW 12
12681: PPUSH
12682: LD_INT 13
12684: PPUSH
12685: LD_INT 1
12687: PPUSH
12688: CALL_OW 55
// enable ;
12692: ENABLE
// end ;
12693: END
// every 2 2$0 do
12694: GO 12696
12696: DISABLE
// begin wait ( Rand ( 1 , 7200 ) ) ;
12697: LD_INT 1
12699: PPUSH
12700: LD_INT 7200
12702: PPUSH
12703: CALL_OW 12
12707: PPUSH
12708: CALL_OW 67
// CreateCratesArea ( Rand ( 3 , 5 ) , bedny_ar , true ) ;
12712: LD_INT 3
12714: PPUSH
12715: LD_INT 5
12717: PPUSH
12718: CALL_OW 12
12722: PPUSH
12723: LD_INT 40
12725: PPUSH
12726: LD_INT 1
12728: PPUSH
12729: CALL_OW 55
// enable ;
12733: ENABLE
// end ; end_of_file
12734: END
// export nah ; export RUSI_AUTA ; export PRU_ATTACK ; export EMR ; export stavec ; var Rusi_k ; var VOJUTOK ; var vehicle ; var zo ; var i , pom , pom1 ; var Dbase ; var staveci ; var RA1 ; var R_depot ; var R_mine ; var R_sel ; var R_factory ; var R_turret1 ; var R_lab ; var R_bunkr ; var R_turret2 ; var R_turret3 ; var R_egun ; var R_arm ; var R_ecomp ; var R_etra ; var R_esib ; var R_oel ; var XYS ; var UTOK ; var atway ; var pomnah ; var nahodne_tanku ; var vojaci ; var bazmakro ; every 0 0$0.1 do
12735: GO 12737
12737: DISABLE
// begin for i := 1 to 51 do
12738: LD_ADDR_LOC 22
12742: PUSH
12743: DOUBLE
12744: LD_INT 1
12746: DEC
12747: ST_TO_ADDR
12748: LD_INT 51
12750: PUSH
12751: FOR_TO
12752: IFFALSE 12765
// disable ( 200 + i ) ;
12754: LD_INT 200
12756: PUSH
12757: LD_LOC 22
12761: PLUS
12762: DISABLE_MARKED
12763: GO 12751
12765: POP
12766: POP
// for i in [ 299 , 298 , 297 , 296 , 295 , 289 , 288 , 255 ] do
12767: LD_ADDR_LOC 22
12771: PUSH
12772: LD_INT 299
12774: PUSH
12775: LD_INT 298
12777: PUSH
12778: LD_INT 297
12780: PUSH
12781: LD_INT 296
12783: PUSH
12784: LD_INT 295
12786: PUSH
12787: LD_INT 289
12789: PUSH
12790: LD_INT 288
12792: PUSH
12793: LD_INT 255
12795: PUSH
12796: EMPTY
12797: LIST
12798: LIST
12799: LIST
12800: LIST
12801: LIST
12802: LIST
12803: LIST
12804: LIST
12805: PUSH
12806: FOR_IN
12807: IFFALSE 12816
// disable ( i ) ;
12809: LD_LOC 22
12813: DISABLE_MARKED
12814: GO 12806
12816: POP
12817: POP
// EMR = false ;
12818: LD_ADDR_EXP 36
12822: PUSH
12823: LD_INT 0
12825: ST_TO_ADDR
// end ;
12826: END
// on BuildingComplete ( building ) do begin if building = R_depot then
12827: LD_VAR 0 1
12831: PUSH
12832: LD_LOC 28
12836: EQUAL
12837: IFFALSE 12845
// begin enable ( 203 ) ;
12839: LD_INT 203
12841: ENABLE_MARKED
// enable ( 299 ) ;
12842: LD_INT 299
12844: ENABLE_MARKED
// end ; if building = R_mine then
12845: LD_VAR 0 1
12849: PUSH
12850: LD_LOC 29
12854: EQUAL
12855: IFFALSE 12860
// enable ( 205 ) ;
12857: LD_INT 205
12859: ENABLE_MARKED
// if building = R_sel then
12860: LD_VAR 0 1
12864: PUSH
12865: LD_LOC 30
12869: EQUAL
12870: IFFALSE 12875
// enable ( 207 ) ;
12872: LD_INT 207
12874: ENABLE_MARKED
// if building = R_factory then
12875: LD_VAR 0 1
12879: PUSH
12880: LD_LOC 31
12884: EQUAL
12885: IFFALSE 12890
// enable ( 209 ) ;
12887: LD_INT 209
12889: ENABLE_MARKED
// if building = R_turret1 then
12890: LD_VAR 0 1
12894: PUSH
12895: LD_LOC 32
12899: EQUAL
12900: IFFALSE 12905
// enable ( 214 ) ;
12902: LD_INT 214
12904: ENABLE_MARKED
// if building = R_lab then
12905: LD_VAR 0 1
12909: PUSH
12910: LD_LOC 33
12914: EQUAL
12915: IFFALSE 12920
// enable ( 217 ) ;
12917: LD_INT 217
12919: ENABLE_MARKED
// if building = R_lab then
12920: LD_VAR 0 1
12924: PUSH
12925: LD_LOC 33
12929: EQUAL
12930: IFFALSE 12935
// enable ( 220 ) ;
12932: LD_INT 220
12934: ENABLE_MARKED
// if building = R_egun then
12935: LD_VAR 0 1
12939: PUSH
12940: LD_LOC 37
12944: EQUAL
12945: IFFALSE 12950
// enable ( 224 ) ;
12947: LD_INT 224
12949: ENABLE_MARKED
// if building = R_turret2 then
12950: LD_VAR 0 1
12954: PUSH
12955: LD_LOC 35
12959: EQUAL
12960: IFFALSE 12965
// enable ( 226 ) ;
12962: LD_INT 226
12964: ENABLE_MARKED
// if building = R_turret3 then
12965: LD_VAR 0 1
12969: PUSH
12970: LD_LOC 36
12974: EQUAL
12975: IFFALSE 12980
// enable ( 229 ) ;
12977: LD_INT 229
12979: ENABLE_MARKED
// if building = R_arm then
12980: LD_VAR 0 1
12984: PUSH
12985: LD_LOC 38
12989: EQUAL
12990: IFFALSE 12998
// begin enable ( 232 ) ;
12992: LD_INT 232
12994: ENABLE_MARKED
// enable ( 297 ) ;
12995: LD_INT 297
12997: ENABLE_MARKED
// end ; if building = R_etra then
12998: LD_VAR 0 1
13002: PUSH
13003: LD_LOC 40
13007: EQUAL
13008: IFFALSE 13013
// enable ( 235 ) ;
13010: LD_INT 235
13012: ENABLE_MARKED
// if building = R_ecomp then
13013: LD_VAR 0 1
13017: PUSH
13018: LD_LOC 39
13022: EQUAL
13023: IFFALSE 13028
// enable ( 249 ) ;
13025: LD_INT 249
13027: ENABLE_MARKED
// if building = R_esib then
13028: LD_VAR 0 1
13032: PUSH
13033: LD_LOC 41
13037: EQUAL
13038: IFFALSE 13046
// begin enable ( 237 ) ;
13040: LD_INT 237
13042: ENABLE_MARKED
// enable ( 241 ) ;
13043: LD_INT 241
13045: ENABLE_MARKED
// end ; if building = R_oel then
13046: LD_VAR 0 1
13050: PUSH
13051: LD_LOC 42
13055: EQUAL
13056: IFFALSE 13061
// enable ( 239 ) ;
13058: LD_INT 239
13060: ENABLE_MARKED
// if building = Ambase then
13061: LD_VAR 0 1
13065: PUSH
13066: LD_EXP 49
13070: EQUAL
13071: IFFALSE 13090
// begin Dial := 1 ;
13073: LD_ADDR_EXP 38
13077: PUSH
13078: LD_INT 1
13080: ST_TO_ADDR
// pojmenuj_epsilon ( Ambase ) ;
13081: LD_EXP 49
13085: PPUSH
13086: CALL 33827 0 1
// end ; enable ;
13090: ENABLE
// end ;
13091: PPOPN 1
13093: END
// on UpgradeComplete ( building ) do begin if building = R_depot then
13094: LD_VAR 0 1
13098: PUSH
13099: LD_LOC 28
13103: EQUAL
13104: IFFALSE 13109
// enable ( 210 ) ;
13106: LD_INT 210
13108: ENABLE_MARKED
// if building = R_factory then
13109: LD_VAR 0 1
13113: PUSH
13114: LD_LOC 31
13118: EQUAL
13119: IFFALSE 13124
// enable ( 211 ) ;
13121: LD_INT 211
13123: ENABLE_MARKED
// if building = R_lab then
13124: LD_VAR 0 1
13128: PUSH
13129: LD_LOC 33
13133: EQUAL
13134: IFFALSE 13142
// begin enable ( 222 ) ;
13136: LD_INT 222
13138: ENABLE_MARKED
// enable ( 298 ) ;
13139: LD_INT 298
13141: ENABLE_MARKED
// end ; if building = Amsiblab then
13142: LD_VAR 0 1
13146: PUSH
13147: LD_EXP 51
13151: EQUAL
13152: IFFALSE 13162
// Dial = 3 ;
13154: LD_ADDR_EXP 38
13158: PUSH
13159: LD_INT 3
13161: ST_TO_ADDR
// enable ;
13162: ENABLE
// end ;
13163: PPOPN 1
13165: END
// every 4 4$0 do
13166: GO 13168
13168: DISABLE
// begin case nah of 1 , 2 :
13169: LD_EXP 33
13173: PUSH
13174: LD_INT 1
13176: DOUBLE
13177: EQUAL
13178: IFTRUE 13188
13180: LD_INT 2
13182: DOUBLE
13183: EQUAL
13184: IFTRUE 13188
13186: GO 13204
13188: POP
// CreateDepositXY ( 150 , 80 , mat_oil ) ; 4 :
13189: LD_INT 150
13191: PPUSH
13192: LD_INT 80
13194: PPUSH
13195: LD_INT 2
13197: PPUSH
13198: CALL_OW 62
13202: GO 13253
13204: LD_INT 4
13206: DOUBLE
13207: EQUAL
13208: IFTRUE 13212
13210: GO 13228
13212: POP
// CreateDepositXY ( 91 , 109 , mat_oil ) ; 3 :
13213: LD_INT 91
13215: PPUSH
13216: LD_INT 109
13218: PPUSH
13219: LD_INT 2
13221: PPUSH
13222: CALL_OW 62
13226: GO 13253
13228: LD_INT 3
13230: DOUBLE
13231: EQUAL
13232: IFTRUE 13236
13234: GO 13252
13236: POP
// CreateDepositXY ( 43 , 71 , mat_oil ) ; end ;
13237: LD_INT 43
13239: PPUSH
13240: LD_INT 71
13242: PPUSH
13243: LD_INT 2
13245: PPUSH
13246: CALL_OW 62
13250: GO 13253
13252: POP
// wait ( timerusi [ difficulty ] ) ;
13253: LD_EXP 58
13257: PUSH
13258: LD_OWVAR 67
13262: ARRAY
13263: PPUSH
13264: CALL_OW 67
// case nah of 1 :
13268: LD_EXP 33
13272: PUSH
13273: LD_INT 1
13275: DOUBLE
13276: EQUAL
13277: IFTRUE 13281
13279: GO 13292
13281: POP
// zo = RE1 ; 2 :
13282: LD_ADDR_LOC 21
13286: PUSH
13287: LD_INT 4
13289: ST_TO_ADDR
13290: GO 13350
13292: LD_INT 2
13294: DOUBLE
13295: EQUAL
13296: IFTRUE 13300
13298: GO 13311
13300: POP
// zo = RE2 ; 3 :
13301: LD_ADDR_LOC 21
13305: PUSH
13306: LD_INT 5
13308: ST_TO_ADDR
13309: GO 13350
13311: LD_INT 3
13313: DOUBLE
13314: EQUAL
13315: IFTRUE 13319
13317: GO 13330
13319: POP
// zo = RE3 ; 4 :
13320: LD_ADDR_LOC 21
13324: PUSH
13325: LD_INT 6
13327: ST_TO_ADDR
13328: GO 13350
13330: LD_INT 4
13332: DOUBLE
13333: EQUAL
13334: IFTRUE 13338
13336: GO 13349
13338: POP
// zo = RE4 ; end ;
13339: LD_ADDR_LOC 21
13343: PUSH
13344: LD_INT 7
13346: ST_TO_ADDR
13347: GO 13350
13349: POP
// for i in CREATOVANI_RUSKEHO_KONVOJE_LIST do
13350: LD_ADDR_LOC 22
13354: PUSH
13355: LD_EXP 11
13359: PUSH
13360: FOR_IN
13361: IFFALSE 13382
// PlaceUnitArea ( i , zo , false ) ;
13363: LD_LOC 22
13367: PPUSH
13368: LD_LOC 21
13372: PPUSH
13373: LD_INT 0
13375: PPUSH
13376: CALL_OW 49
13380: GO 13360
13382: POP
13383: POP
// Rusi_k := FilterUnitsInArea ( zo , [ [ f_side , Rusi ] ] ) ;
13384: LD_ADDR_LOC 18
13388: PUSH
13389: LD_LOC 21
13393: PPUSH
13394: LD_INT 22
13396: PUSH
13397: LD_EXP 2
13401: PUSH
13402: EMPTY
13403: LIST
13404: LIST
13405: PUSH
13406: EMPTY
13407: LIST
13408: PPUSH
13409: CALL_OW 70
13413: ST_TO_ADDR
// if nah < 3 then
13414: LD_EXP 33
13418: PUSH
13419: LD_INT 3
13421: LESS
13422: IFFALSE 13439
// ComAgressiveMove ( Rusi_k , 145 , 69 ) ;
13424: LD_LOC 18
13428: PPUSH
13429: LD_INT 145
13431: PPUSH
13432: LD_INT 69
13434: PPUSH
13435: CALL_OW 114
// if nah = 3 then
13439: LD_EXP 33
13443: PUSH
13444: LD_INT 3
13446: EQUAL
13447: IFFALSE 13464
// ComAgressiveMove ( Rusi_k , 52 , 81 ) ;
13449: LD_LOC 18
13453: PPUSH
13454: LD_INT 52
13456: PPUSH
13457: LD_INT 81
13459: PPUSH
13460: CALL_OW 114
// if nah = 4 then
13464: LD_EXP 33
13468: PUSH
13469: LD_INT 4
13471: EQUAL
13472: IFFALSE 13489
// ComAgressiveMove ( Rusi_k , 93 , 99 ) ;
13474: LD_LOC 18
13478: PPUSH
13479: LD_INT 93
13481: PPUSH
13482: LD_INT 99
13484: PPUSH
13485: CALL_OW 114
// if nah = 1 then
13489: LD_EXP 33
13493: PUSH
13494: LD_INT 1
13496: EQUAL
13497: IFFALSE 13507
// zo = RZ1 ;
13499: LD_ADDR_LOC 21
13503: PUSH
13504: LD_INT 8
13506: ST_TO_ADDR
// if nah = 2 then
13507: LD_EXP 33
13511: PUSH
13512: LD_INT 2
13514: EQUAL
13515: IFFALSE 13525
// zo = RZ1 ;
13517: LD_ADDR_LOC 21
13521: PUSH
13522: LD_INT 8
13524: ST_TO_ADDR
// if nah = 3 then
13525: LD_EXP 33
13529: PUSH
13530: LD_INT 3
13532: EQUAL
13533: IFFALSE 13543
// zo = RZ3 ;
13535: LD_ADDR_LOC 21
13539: PUSH
13540: LD_INT 10
13542: ST_TO_ADDR
// if nah = 4 then
13543: LD_EXP 33
13547: PUSH
13548: LD_INT 4
13550: EQUAL
13551: IFFALSE 13561
// zo = RZ2 ;
13553: LD_ADDR_LOC 21
13557: PUSH
13558: LD_INT 9
13560: ST_TO_ADDR
// enable ( 201 ) ;
13561: LD_INT 201
13563: ENABLE_MARKED
// enable ( 248 ) ;
13564: LD_INT 248
13566: ENABLE_MARKED
// RUSI_AUTA := 1 ;
13567: LD_ADDR_EXP 34
13571: PUSH
13572: LD_INT 1
13574: ST_TO_ADDR
// end ;
13575: END
// every 0 0$4 trigger FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) > 0 marked 201 do
13576: LD_LOC 21
13580: PPUSH
13581: LD_INT 22
13583: PUSH
13584: LD_EXP 2
13588: PUSH
13589: EMPTY
13590: LIST
13591: LIST
13592: PUSH
13593: LD_INT 1
13595: PUSH
13596: EMPTY
13597: LIST
13598: PUSH
13599: LD_INT 25
13601: PUSH
13602: LD_INT 2
13604: PUSH
13605: EMPTY
13606: LIST
13607: LIST
13608: PUSH
13609: EMPTY
13610: LIST
13611: LIST
13612: LIST
13613: PPUSH
13614: CALL_OW 70
13618: PUSH
13619: LD_INT 0
13621: GREATER
13622: IFFALSE 13717
13624: GO 13626
13626: DISABLE
// begin staveci := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_class , class_engineer ] ] ) ;
13627: LD_ADDR_LOC 26
13631: PUSH
13632: LD_INT 22
13634: PUSH
13635: LD_EXP 2
13639: PUSH
13640: EMPTY
13641: LIST
13642: LIST
13643: PUSH
13644: LD_INT 25
13646: PUSH
13647: LD_INT 2
13649: PUSH
13650: EMPTY
13651: LIST
13652: LIST
13653: PUSH
13654: EMPTY
13655: LIST
13656: LIST
13657: PPUSH
13658: CALL_OW 69
13662: ST_TO_ADDR
// SetXYS ( nah , 1 ) ;
13663: LD_EXP 33
13667: PPUSH
13668: LD_INT 1
13670: PPUSH
13671: CALL 18192 0 2
// AddComBuild ( staveci , b_depot , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
13675: LD_LOC 26
13679: PPUSH
13680: LD_INT 0
13682: PPUSH
13683: LD_LOC 43
13687: PUSH
13688: LD_INT 1
13690: ARRAY
13691: PPUSH
13692: LD_LOC 43
13696: PUSH
13697: LD_INT 2
13699: ARRAY
13700: PPUSH
13701: LD_LOC 43
13705: PUSH
13706: LD_INT 3
13708: ARRAY
13709: PPUSH
13710: CALL_OW 205
// enable ( 202 ) ;
13714: LD_INT 202
13716: ENABLE_MARKED
// end ;
13717: END
// every 0 0$5 marked 202 do
13718: GO 13720
13720: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
13721: LD_ADDR_LOC 23
13725: PUSH
13726: LD_LOC 21
13730: PPUSH
13731: LD_INT 22
13733: PUSH
13734: LD_EXP 2
13738: PUSH
13739: EMPTY
13740: LIST
13741: LIST
13742: PUSH
13743: LD_INT 1
13745: PUSH
13746: EMPTY
13747: LIST
13748: PUSH
13749: LD_INT 30
13751: PUSH
13752: LD_INT 0
13754: PUSH
13755: EMPTY
13756: LIST
13757: LIST
13758: PUSH
13759: EMPTY
13760: LIST
13761: LIST
13762: LIST
13763: PPUSH
13764: CALL_OW 70
13768: ST_TO_ADDR
// if pom = 0 then
13769: LD_LOC 23
13773: PUSH
13774: LD_INT 0
13776: EQUAL
13777: IFFALSE 13833
// begin SetXYS ( nah , 1 ) ;
13779: LD_EXP 33
13783: PPUSH
13784: LD_INT 1
13786: PPUSH
13787: CALL 18192 0 2
// AddComBuild ( staveci , b_depot , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
13791: LD_LOC 26
13795: PPUSH
13796: LD_INT 0
13798: PPUSH
13799: LD_LOC 43
13803: PUSH
13804: LD_INT 1
13806: ARRAY
13807: PPUSH
13808: LD_LOC 43
13812: PUSH
13813: LD_INT 2
13815: ARRAY
13816: PPUSH
13817: LD_LOC 43
13821: PUSH
13822: LD_INT 3
13824: ARRAY
13825: PPUSH
13826: CALL_OW 205
// enable ;
13830: ENABLE
// end else
13831: GO 13868
// begin R_depot = pom [ 1 ] ;
13833: LD_ADDR_LOC 28
13837: PUSH
13838: LD_LOC 23
13842: PUSH
13843: LD_INT 1
13845: ARRAY
13846: ST_TO_ADDR
// cheat_source ( R_depot , 300 , 50 , 0 ) ;
13847: LD_LOC 28
13851: PPUSH
13852: LD_INT 300
13854: PPUSH
13855: LD_INT 50
13857: PPUSH
13858: LD_INT 0
13860: PPUSH
13861: CALL 13869 0 4
// enable ( 107 ) ;
13865: LD_INT 107
13867: ENABLE_MARKED
// end ; end ;
13868: END
// export function cheat_source ( dep , cans , oil , siberite ) ; begin
13869: LD_INT 0
13871: PPUSH
// Dbase = GetBase ( dep ) ;
13872: LD_ADDR_LOC 25
13876: PUSH
13877: LD_VAR 0 1
13881: PPUSH
13882: CALL_OW 274
13886: ST_TO_ADDR
// AddResourceType ( Dbase , mat_cans , cans ) ;
13887: LD_LOC 25
13891: PPUSH
13892: LD_INT 1
13894: PPUSH
13895: LD_VAR 0 2
13899: PPUSH
13900: CALL_OW 276
// AddResourceType ( Dbase , mat_oil , oil ) ;
13904: LD_LOC 25
13908: PPUSH
13909: LD_INT 2
13911: PPUSH
13912: LD_VAR 0 3
13916: PPUSH
13917: CALL_OW 276
// AddResourceType ( Dbase , mat_siberit , siberite ) ;
13921: LD_LOC 25
13925: PPUSH
13926: LD_INT 3
13928: PPUSH
13929: LD_VAR 0 4
13933: PPUSH
13934: CALL_OW 276
// end ;
13938: LD_VAR 0 5
13942: RET
// every 0 0$2 marked 203 do
13943: GO 13945
13945: DISABLE
// begin SetXYS ( nah , 2 ) ;
13946: LD_EXP 33
13950: PPUSH
13951: LD_INT 2
13953: PPUSH
13954: CALL 18192 0 2
// AddComBuild ( staveci , b_oil_mine , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
13958: LD_LOC 26
13962: PPUSH
13963: LD_INT 29
13965: PPUSH
13966: LD_LOC 43
13970: PUSH
13971: LD_INT 1
13973: ARRAY
13974: PPUSH
13975: LD_LOC 43
13979: PUSH
13980: LD_INT 2
13982: ARRAY
13983: PPUSH
13984: LD_LOC 43
13988: PUSH
13989: LD_INT 3
13991: ARRAY
13992: PPUSH
13993: CALL_OW 205
// wait ( 0 0$5 ) ;
13997: LD_INT 175
13999: PPUSH
14000: CALL_OW 67
// enable ( 204 ) ;
14004: LD_INT 204
14006: ENABLE_MARKED
// end ;
14007: END
// every 0 0$5 marked 204 do
14008: GO 14010
14010: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_oil_mine ] ] ) ;
14011: LD_ADDR_LOC 23
14015: PUSH
14016: LD_LOC 21
14020: PPUSH
14021: LD_INT 22
14023: PUSH
14024: LD_EXP 2
14028: PUSH
14029: EMPTY
14030: LIST
14031: LIST
14032: PUSH
14033: LD_INT 1
14035: PUSH
14036: EMPTY
14037: LIST
14038: PUSH
14039: LD_INT 30
14041: PUSH
14042: LD_INT 29
14044: PUSH
14045: EMPTY
14046: LIST
14047: LIST
14048: PUSH
14049: EMPTY
14050: LIST
14051: LIST
14052: LIST
14053: PPUSH
14054: CALL_OW 70
14058: ST_TO_ADDR
// if pom = 0 then
14059: LD_LOC 23
14063: PUSH
14064: LD_INT 0
14066: EQUAL
14067: IFFALSE 14123
// begin SetXYS ( nah , 2 ) ;
14069: LD_EXP 33
14073: PPUSH
14074: LD_INT 2
14076: PPUSH
14077: CALL 18192 0 2
// AddComBuild ( staveci , b_oil_mine , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14081: LD_LOC 26
14085: PPUSH
14086: LD_INT 29
14088: PPUSH
14089: LD_LOC 43
14093: PUSH
14094: LD_INT 1
14096: ARRAY
14097: PPUSH
14098: LD_LOC 43
14102: PUSH
14103: LD_INT 2
14105: ARRAY
14106: PPUSH
14107: LD_LOC 43
14111: PUSH
14112: LD_INT 3
14114: ARRAY
14115: PPUSH
14116: CALL_OW 205
// enable ;
14120: ENABLE
// end else
14121: GO 14137
// begin R_mine = pom [ 1 ] ;
14123: LD_ADDR_LOC 29
14127: PUSH
14128: LD_LOC 23
14132: PUSH
14133: LD_INT 1
14135: ARRAY
14136: ST_TO_ADDR
// end ; end ;
14137: END
// every 0 0$2 marked 205 do
14138: GO 14140
14140: DISABLE
// begin cheat_source ( R_depot , 50 , 0 , 50 ) ;
14141: LD_LOC 28
14145: PPUSH
14146: LD_INT 50
14148: PPUSH
14149: LD_INT 0
14151: PPUSH
14152: LD_INT 50
14154: PPUSH
14155: CALL 13869 0 4
// SetXYS ( nah , 3 ) ;
14159: LD_EXP 33
14163: PPUSH
14164: LD_INT 3
14166: PPUSH
14167: CALL 18192 0 2
// AddComBuild ( staveci , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14171: LD_LOC 26
14175: PPUSH
14176: LD_INT 28
14178: PPUSH
14179: LD_LOC 43
14183: PUSH
14184: LD_INT 1
14186: ARRAY
14187: PPUSH
14188: LD_LOC 43
14192: PUSH
14193: LD_INT 2
14195: ARRAY
14196: PPUSH
14197: LD_LOC 43
14201: PUSH
14202: LD_INT 3
14204: ARRAY
14205: PPUSH
14206: CALL_OW 205
// wait ( 0 0$5 ) ;
14210: LD_INT 175
14212: PPUSH
14213: CALL_OW 67
// enable ( 206 ) ;
14217: LD_INT 206
14219: ENABLE_MARKED
// end ;
14220: END
// every 0 0$5 marked 206 do
14221: GO 14223
14223: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_siberite_power ] ] ) ;
14224: LD_ADDR_LOC 23
14228: PUSH
14229: LD_LOC 21
14233: PPUSH
14234: LD_INT 22
14236: PUSH
14237: LD_EXP 2
14241: PUSH
14242: EMPTY
14243: LIST
14244: LIST
14245: PUSH
14246: LD_INT 1
14248: PUSH
14249: EMPTY
14250: LIST
14251: PUSH
14252: LD_INT 30
14254: PUSH
14255: LD_INT 28
14257: PUSH
14258: EMPTY
14259: LIST
14260: LIST
14261: PUSH
14262: EMPTY
14263: LIST
14264: LIST
14265: LIST
14266: PPUSH
14267: CALL_OW 70
14271: ST_TO_ADDR
// if pom = 0 then
14272: LD_LOC 23
14276: PUSH
14277: LD_INT 0
14279: EQUAL
14280: IFFALSE 14336
// begin SetXYS ( nah , 3 ) ;
14282: LD_EXP 33
14286: PPUSH
14287: LD_INT 3
14289: PPUSH
14290: CALL 18192 0 2
// ComBuild ( staveci , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14294: LD_LOC 26
14298: PPUSH
14299: LD_INT 28
14301: PPUSH
14302: LD_LOC 43
14306: PUSH
14307: LD_INT 1
14309: ARRAY
14310: PPUSH
14311: LD_LOC 43
14315: PUSH
14316: LD_INT 2
14318: ARRAY
14319: PPUSH
14320: LD_LOC 43
14324: PUSH
14325: LD_INT 3
14327: ARRAY
14328: PPUSH
14329: CALL_OW 145
// enable ;
14333: ENABLE
// end else
14334: GO 14350
// begin R_sel = pom [ 1 ] ;
14336: LD_ADDR_LOC 30
14340: PUSH
14341: LD_LOC 23
14345: PUSH
14346: LD_INT 1
14348: ARRAY
14349: ST_TO_ADDR
// end ; end ;
14350: END
// every 0 0$2 marked 207 do
14351: GO 14353
14353: DISABLE
// begin cheat_source ( R_depot , 50 , 0 , 0 ) ;
14354: LD_LOC 28
14358: PPUSH
14359: LD_INT 50
14361: PPUSH
14362: LD_INT 0
14364: PPUSH
14365: LD_INT 0
14367: PPUSH
14368: CALL 13869 0 4
// SetXYS ( nah , 4 ) ;
14372: LD_EXP 33
14376: PPUSH
14377: LD_INT 4
14379: PPUSH
14380: CALL 18192 0 2
// AddComBuild ( staveci , b_workshop , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14384: LD_LOC 26
14388: PPUSH
14389: LD_INT 2
14391: PPUSH
14392: LD_LOC 43
14396: PUSH
14397: LD_INT 1
14399: ARRAY
14400: PPUSH
14401: LD_LOC 43
14405: PUSH
14406: LD_INT 2
14408: ARRAY
14409: PPUSH
14410: LD_LOC 43
14414: PUSH
14415: LD_INT 3
14417: ARRAY
14418: PPUSH
14419: CALL_OW 205
// wait ( 0 0$5 ) ;
14423: LD_INT 175
14425: PPUSH
14426: CALL_OW 67
// enable ( 208 ) ;
14430: LD_INT 208
14432: ENABLE_MARKED
// end ;
14433: END
// every 0 0$5 marked 208 do
14434: GO 14436
14436: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_workshop ] ] ) ;
14437: LD_ADDR_LOC 23
14441: PUSH
14442: LD_LOC 21
14446: PPUSH
14447: LD_INT 22
14449: PUSH
14450: LD_EXP 2
14454: PUSH
14455: EMPTY
14456: LIST
14457: LIST
14458: PUSH
14459: LD_INT 1
14461: PUSH
14462: EMPTY
14463: LIST
14464: PUSH
14465: LD_INT 30
14467: PUSH
14468: LD_INT 2
14470: PUSH
14471: EMPTY
14472: LIST
14473: LIST
14474: PUSH
14475: EMPTY
14476: LIST
14477: LIST
14478: LIST
14479: PPUSH
14480: CALL_OW 70
14484: ST_TO_ADDR
// if pom = 0 then
14485: LD_LOC 23
14489: PUSH
14490: LD_INT 0
14492: EQUAL
14493: IFFALSE 14549
// begin SetXYS ( nah , 4 ) ;
14495: LD_EXP 33
14499: PPUSH
14500: LD_INT 4
14502: PPUSH
14503: CALL 18192 0 2
// ComBuild ( staveci , b_workshop , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14507: LD_LOC 26
14511: PPUSH
14512: LD_INT 2
14514: PPUSH
14515: LD_LOC 43
14519: PUSH
14520: LD_INT 1
14522: ARRAY
14523: PPUSH
14524: LD_LOC 43
14528: PUSH
14529: LD_INT 2
14531: ARRAY
14532: PPUSH
14533: LD_LOC 43
14537: PUSH
14538: LD_INT 3
14540: ARRAY
14541: PPUSH
14542: CALL_OW 145
// enable ;
14546: ENABLE
// end else
14547: GO 14563
// begin R_factory = pom [ 1 ] ;
14549: LD_ADDR_LOC 31
14553: PUSH
14554: LD_LOC 23
14558: PUSH
14559: LD_INT 1
14561: ARRAY
14562: ST_TO_ADDR
// end ; end ;
14563: END
// every 0 0$1 marked 209 do
14564: GO 14566
14566: DISABLE
// begin cheat_source ( R_depot , 100 , 20 , 50 ) ;
14567: LD_LOC 28
14571: PPUSH
14572: LD_INT 100
14574: PPUSH
14575: LD_INT 20
14577: PPUSH
14578: LD_INT 50
14580: PPUSH
14581: CALL 13869 0 4
// AddComUpgrade ( R_depot ) ;
14585: LD_LOC 28
14589: PPUSH
14590: CALL_OW 206
// case nah of 1 :
14594: LD_EXP 33
14598: PUSH
14599: LD_INT 1
14601: DOUBLE
14602: EQUAL
14603: IFTRUE 14607
14605: GO 14625
14607: POP
// AddComMoveXY ( staveci , 142 , 68 ) ; 2 :
14608: LD_LOC 26
14612: PPUSH
14613: LD_INT 142
14615: PPUSH
14616: LD_INT 68
14618: PPUSH
14619: CALL_OW 171
14623: GO 14704
14625: LD_INT 2
14627: DOUBLE
14628: EQUAL
14629: IFTRUE 14633
14631: GO 14651
14633: POP
// AddComMoveXY ( staveci , 142 , 68 ) ; 3 :
14634: LD_LOC 26
14638: PPUSH
14639: LD_INT 142
14641: PPUSH
14642: LD_INT 68
14644: PPUSH
14645: CALL_OW 171
14649: GO 14704
14651: LD_INT 3
14653: DOUBLE
14654: EQUAL
14655: IFTRUE 14659
14657: GO 14677
14659: POP
// AddComMoveXY ( staveci , 48 , 73 ) ; 4 :
14660: LD_LOC 26
14664: PPUSH
14665: LD_INT 48
14667: PPUSH
14668: LD_INT 73
14670: PPUSH
14671: CALL_OW 171
14675: GO 14704
14677: LD_INT 4
14679: DOUBLE
14680: EQUAL
14681: IFTRUE 14685
14683: GO 14703
14685: POP
// AddComMoveXY ( staveci , 94 , 105 ) ; end ;
14686: LD_LOC 26
14690: PPUSH
14691: LD_INT 94
14693: PPUSH
14694: LD_INT 105
14696: PPUSH
14697: CALL_OW 171
14701: GO 14704
14703: POP
// end ;
14704: END
// every 0 0$1 marked 210 do
14705: GO 14707
14707: DISABLE
// begin cheat_source ( R_depot , 100 , 20 , 50 ) ;
14708: LD_LOC 28
14712: PPUSH
14713: LD_INT 100
14715: PPUSH
14716: LD_INT 20
14718: PPUSH
14719: LD_INT 50
14721: PPUSH
14722: CALL 13869 0 4
// AddComUpgrade ( R_factory ) ;
14726: LD_LOC 31
14730: PPUSH
14731: CALL_OW 206
// case nah of 1 :
14735: LD_EXP 33
14739: PUSH
14740: LD_INT 1
14742: DOUBLE
14743: EQUAL
14744: IFTRUE 14748
14746: GO 14766
14748: POP
// AddComMoveXY ( staveci , 158 , 85 ) ; 2 :
14749: LD_LOC 26
14753: PPUSH
14754: LD_INT 158
14756: PPUSH
14757: LD_INT 85
14759: PPUSH
14760: CALL_OW 171
14764: GO 14845
14766: LD_INT 2
14768: DOUBLE
14769: EQUAL
14770: IFTRUE 14774
14772: GO 14792
14774: POP
// AddComMoveXY ( staveci , 158 , 85 ) ; 3 :
14775: LD_LOC 26
14779: PPUSH
14780: LD_INT 158
14782: PPUSH
14783: LD_INT 85
14785: PPUSH
14786: CALL_OW 171
14790: GO 14845
14792: LD_INT 3
14794: DOUBLE
14795: EQUAL
14796: IFTRUE 14800
14798: GO 14818
14800: POP
// AddComMoveXY ( staveci , 44 , 79 ) ; 4 :
14801: LD_LOC 26
14805: PPUSH
14806: LD_INT 44
14808: PPUSH
14809: LD_INT 79
14811: PPUSH
14812: CALL_OW 171
14816: GO 14845
14818: LD_INT 4
14820: DOUBLE
14821: EQUAL
14822: IFTRUE 14826
14824: GO 14844
14826: POP
// AddComMoveXY ( staveci , 99 , 98 ) ; end ;
14827: LD_LOC 26
14831: PPUSH
14832: LD_INT 99
14834: PPUSH
14835: LD_INT 98
14837: PPUSH
14838: CALL_OW 171
14842: GO 14845
14844: POP
// end ;
14845: END
// every 0 0$2 marked 211 do
14846: GO 14848
14848: DISABLE
// begin cheat_source ( R_depot , 50 , 0 , 0 ) ;
14849: LD_LOC 28
14853: PPUSH
14854: LD_INT 50
14856: PPUSH
14857: LD_INT 0
14859: PPUSH
14860: LD_INT 0
14862: PPUSH
14863: CALL 13869 0 4
// SetXYS ( nah , 5 ) ;
14867: LD_EXP 33
14871: PPUSH
14872: LD_INT 5
14874: PPUSH
14875: CALL 18192 0 2
// AddComBuild ( staveci , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14879: LD_LOC 26
14883: PPUSH
14884: LD_INT 33
14886: PPUSH
14887: LD_LOC 43
14891: PUSH
14892: LD_INT 1
14894: ARRAY
14895: PPUSH
14896: LD_LOC 43
14900: PUSH
14901: LD_INT 2
14903: ARRAY
14904: PPUSH
14905: LD_LOC 43
14909: PUSH
14910: LD_INT 3
14912: ARRAY
14913: PPUSH
14914: CALL_OW 205
// wait ( 0 0$5 ) ;
14918: LD_INT 175
14920: PPUSH
14921: CALL_OW 67
// enable ( 212 ) ;
14925: LD_INT 212
14927: ENABLE_MARKED
// enable ( 213 ) ;
14928: LD_INT 213
14930: ENABLE_MARKED
// end ;
14931: END
// every 0 0$5 marked 212 do
14932: GO 14934
14934: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
14935: LD_ADDR_LOC 23
14939: PUSH
14940: LD_LOC 21
14944: PPUSH
14945: LD_INT 22
14947: PUSH
14948: LD_EXP 2
14952: PUSH
14953: EMPTY
14954: LIST
14955: LIST
14956: PUSH
14957: LD_INT 1
14959: PUSH
14960: EMPTY
14961: LIST
14962: PUSH
14963: LD_INT 30
14965: PUSH
14966: LD_INT 33
14968: PUSH
14969: EMPTY
14970: LIST
14971: LIST
14972: PUSH
14973: EMPTY
14974: LIST
14975: LIST
14976: LIST
14977: PPUSH
14978: CALL_OW 70
14982: ST_TO_ADDR
// if pom = 0 then
14983: LD_LOC 23
14987: PUSH
14988: LD_INT 0
14990: EQUAL
14991: IFFALSE 15047
// begin SetXYS ( nah , 5 ) ;
14993: LD_EXP 33
14997: PPUSH
14998: LD_INT 5
15000: PPUSH
15001: CALL 18192 0 2
// ComBuild ( staveci , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15005: LD_LOC 26
15009: PPUSH
15010: LD_INT 33
15012: PPUSH
15013: LD_LOC 43
15017: PUSH
15018: LD_INT 1
15020: ARRAY
15021: PPUSH
15022: LD_LOC 43
15026: PUSH
15027: LD_INT 2
15029: ARRAY
15030: PPUSH
15031: LD_LOC 43
15035: PUSH
15036: LD_INT 3
15038: ARRAY
15039: PPUSH
15040: CALL_OW 145
// enable ;
15044: ENABLE
// end else
15045: GO 15061
// begin R_turret1 = pom [ 1 ] ;
15047: LD_ADDR_LOC 32
15051: PUSH
15052: LD_LOC 23
15056: PUSH
15057: LD_INT 1
15059: ARRAY
15060: ST_TO_ADDR
// end ; end ;
15061: END
// every 0 0$1 marked 213 do var i ; var zone ;
15062: GO 15064
15064: DISABLE
15065: LD_INT 0
15067: PPUSH
15068: PPUSH
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_mechanic ] ] ) ;
15069: LD_ADDR_LOC 23
15073: PUSH
15074: LD_LOC 21
15078: PPUSH
15079: LD_INT 22
15081: PUSH
15082: LD_EXP 2
15086: PUSH
15087: EMPTY
15088: LIST
15089: LIST
15090: PUSH
15091: LD_INT 1
15093: PUSH
15094: EMPTY
15095: LIST
15096: PUSH
15097: LD_INT 25
15099: PUSH
15100: LD_INT 3
15102: PUSH
15103: EMPTY
15104: LIST
15105: LIST
15106: PUSH
15107: EMPTY
15108: LIST
15109: LIST
15110: LIST
15111: PPUSH
15112: CALL_OW 70
15116: ST_TO_ADDR
// AddComEnterUnit ( pom , R_factory ) ;
15117: LD_LOC 23
15121: PPUSH
15122: LD_LOC 31
15126: PPUSH
15127: CALL_OW 180
// case nah of 1 , 2 :
15131: LD_EXP 33
15135: PUSH
15136: LD_INT 1
15138: DOUBLE
15139: EQUAL
15140: IFTRUE 15150
15142: LD_INT 2
15144: DOUBLE
15145: EQUAL
15146: IFTRUE 15150
15148: GO 15161
15150: POP
// zone = mecharea1 ; 3 :
15151: LD_ADDR_VAR 0 2
15155: PUSH
15156: LD_INT 37
15158: ST_TO_ADDR
15159: GO 15200
15161: LD_INT 3
15163: DOUBLE
15164: EQUAL
15165: IFTRUE 15169
15167: GO 15180
15169: POP
// zone = mecharea2 ; 4 :
15170: LD_ADDR_VAR 0 2
15174: PUSH
15175: LD_INT 38
15177: ST_TO_ADDR
15178: GO 15200
15180: LD_INT 4
15182: DOUBLE
15183: EQUAL
15184: IFTRUE 15188
15186: GO 15199
15188: POP
// zone = mecharea3 ; end ;
15189: LD_ADDR_VAR 0 2
15193: PUSH
15194: LD_INT 39
15196: ST_TO_ADDR
15197: GO 15200
15199: POP
// for i in MECHANICI_NAVIC do
15200: LD_ADDR_VAR 0 1
15204: PUSH
15205: LD_EXP 21
15209: PUSH
15210: FOR_IN
15211: IFFALSE 15232
// PlaceUnitArea ( i , zone , false ) ;
15213: LD_VAR 0 1
15217: PPUSH
15218: LD_VAR 0 2
15222: PPUSH
15223: LD_INT 0
15225: PPUSH
15226: CALL_OW 49
15230: GO 15210
15232: POP
15233: POP
// ComEnterUnit ( MECHANICI_NAVIC , R_factory ) ;
15234: LD_EXP 21
15238: PPUSH
15239: LD_LOC 31
15243: PPUSH
15244: CALL_OW 120
// end ;
15248: PPOPN 2
15250: END
// every 0 0$2 marked 214 do
15251: GO 15253
15253: DISABLE
// begin cheat_source ( R_depot , 50 , 0 , 10 ) ;
15254: LD_LOC 28
15258: PPUSH
15259: LD_INT 50
15261: PPUSH
15262: LD_INT 0
15264: PPUSH
15265: LD_INT 10
15267: PPUSH
15268: CALL 13869 0 4
// SetXYS ( nah , 6 ) ;
15272: LD_EXP 33
15276: PPUSH
15277: LD_INT 6
15279: PPUSH
15280: CALL 18192 0 2
// AddComBuild ( staveci , b_lab , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15284: LD_LOC 26
15288: PPUSH
15289: LD_INT 6
15291: PPUSH
15292: LD_LOC 43
15296: PUSH
15297: LD_INT 1
15299: ARRAY
15300: PPUSH
15301: LD_LOC 43
15305: PUSH
15306: LD_INT 2
15308: ARRAY
15309: PPUSH
15310: LD_LOC 43
15314: PUSH
15315: LD_INT 3
15317: ARRAY
15318: PPUSH
15319: CALL_OW 205
// wait ( 0 0$5 ) ;
15323: LD_INT 175
15325: PPUSH
15326: CALL_OW 67
// enable ( 215 ) ;
15330: LD_INT 215
15332: ENABLE_MARKED
// enable ( 216 ) ;
15333: LD_INT 216
15335: ENABLE_MARKED
// end ;
15336: END
// every 0 0$5 marked 215 do
15337: GO 15339
15339: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_lab ] ] ) ;
15340: LD_ADDR_LOC 23
15344: PUSH
15345: LD_LOC 21
15349: PPUSH
15350: LD_INT 22
15352: PUSH
15353: LD_EXP 2
15357: PUSH
15358: EMPTY
15359: LIST
15360: LIST
15361: PUSH
15362: LD_INT 1
15364: PUSH
15365: EMPTY
15366: LIST
15367: PUSH
15368: LD_INT 30
15370: PUSH
15371: LD_INT 6
15373: PUSH
15374: EMPTY
15375: LIST
15376: LIST
15377: PUSH
15378: EMPTY
15379: LIST
15380: LIST
15381: LIST
15382: PPUSH
15383: CALL_OW 70
15387: ST_TO_ADDR
// if pom = 0 then
15388: LD_LOC 23
15392: PUSH
15393: LD_INT 0
15395: EQUAL
15396: IFFALSE 15452
// begin SetXYS ( nah , 6 ) ;
15398: LD_EXP 33
15402: PPUSH
15403: LD_INT 6
15405: PPUSH
15406: CALL 18192 0 2
// ComBuild ( staveci , b_lab , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15410: LD_LOC 26
15414: PPUSH
15415: LD_INT 6
15417: PPUSH
15418: LD_LOC 43
15422: PUSH
15423: LD_INT 1
15425: ARRAY
15426: PPUSH
15427: LD_LOC 43
15431: PUSH
15432: LD_INT 2
15434: ARRAY
15435: PPUSH
15436: LD_LOC 43
15440: PUSH
15441: LD_INT 3
15443: ARRAY
15444: PPUSH
15445: CALL_OW 145
// enable ;
15449: ENABLE
// end else
15450: GO 15466
// begin R_lab = pom [ 1 ] ;
15452: LD_ADDR_LOC 33
15456: PUSH
15457: LD_LOC 23
15461: PUSH
15462: LD_INT 1
15464: ARRAY
15465: ST_TO_ADDR
// end ; end ;
15466: END
// every 0 0$1 marked 216 do
15467: GO 15469
15469: DISABLE
// begin AddComPlaceWeapon ( R_turret1 , zbrane_na_turrety1 [ difficulty ] ) ;
15470: LD_LOC 32
15474: PPUSH
15475: LD_EXP 71
15479: PUSH
15480: LD_OWVAR 67
15484: ARRAY
15485: PPUSH
15486: CALL_OW 208
// end ;
15490: END
// every 0 0$2 marked 217 do
15491: GO 15493
15493: DISABLE
// begin cheat_source ( R_depot , 50 , 0 , 10 ) ;
15494: LD_LOC 28
15498: PPUSH
15499: LD_INT 50
15501: PPUSH
15502: LD_INT 0
15504: PPUSH
15505: LD_INT 10
15507: PPUSH
15508: CALL 13869 0 4
// SetXYS ( nah , 7 ) ;
15512: LD_EXP 33
15516: PPUSH
15517: LD_INT 7
15519: PPUSH
15520: CALL 18192 0 2
// AddComBuild ( staveci , b_bunker , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15524: LD_LOC 26
15528: PPUSH
15529: LD_INT 32
15531: PPUSH
15532: LD_LOC 43
15536: PUSH
15537: LD_INT 1
15539: ARRAY
15540: PPUSH
15541: LD_LOC 43
15545: PUSH
15546: LD_INT 2
15548: ARRAY
15549: PPUSH
15550: LD_LOC 43
15554: PUSH
15555: LD_INT 3
15557: ARRAY
15558: PPUSH
15559: CALL_OW 205
// wait ( 0 0$5 ) ;
15563: LD_INT 175
15565: PPUSH
15566: CALL_OW 67
// enable ( 218 ) ;
15570: LD_INT 218
15572: ENABLE_MARKED
// end ;
15573: END
// every 0 0$5 marked 218 do
15574: GO 15576
15576: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_bunker ] ] ) ;
15577: LD_ADDR_LOC 23
15581: PUSH
15582: LD_LOC 21
15586: PPUSH
15587: LD_INT 22
15589: PUSH
15590: LD_EXP 2
15594: PUSH
15595: EMPTY
15596: LIST
15597: LIST
15598: PUSH
15599: LD_INT 1
15601: PUSH
15602: EMPTY
15603: LIST
15604: PUSH
15605: LD_INT 30
15607: PUSH
15608: LD_INT 32
15610: PUSH
15611: EMPTY
15612: LIST
15613: LIST
15614: PUSH
15615: EMPTY
15616: LIST
15617: LIST
15618: LIST
15619: PPUSH
15620: CALL_OW 70
15624: ST_TO_ADDR
// if pom = 0 then
15625: LD_LOC 23
15629: PUSH
15630: LD_INT 0
15632: EQUAL
15633: IFFALSE 15689
// begin SetXYS ( nah , 7 ) ;
15635: LD_EXP 33
15639: PPUSH
15640: LD_INT 7
15642: PPUSH
15643: CALL 18192 0 2
// ComBuild ( staveci , b_bunker , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15647: LD_LOC 26
15651: PPUSH
15652: LD_INT 32
15654: PPUSH
15655: LD_LOC 43
15659: PUSH
15660: LD_INT 1
15662: ARRAY
15663: PPUSH
15664: LD_LOC 43
15668: PUSH
15669: LD_INT 2
15671: ARRAY
15672: PPUSH
15673: LD_LOC 43
15677: PUSH
15678: LD_INT 3
15680: ARRAY
15681: PPUSH
15682: CALL_OW 145
// enable ;
15686: ENABLE
// end else
15687: GO 15706
// begin R_bunkr = pom [ 1 ] ;
15689: LD_ADDR_LOC 34
15693: PUSH
15694: LD_LOC 23
15698: PUSH
15699: LD_INT 1
15701: ARRAY
15702: ST_TO_ADDR
// enable ( 219 ) ;
15703: LD_INT 219
15705: ENABLE_MARKED
// end ; end ;
15706: END
// every 0 0$3 marked 219 do
15707: GO 15709
15709: DISABLE
// begin cheat_source ( R_depot , 20 , 0 , 10 ) ;
15710: LD_LOC 28
15714: PPUSH
15715: LD_INT 20
15717: PPUSH
15718: LD_INT 0
15720: PPUSH
15721: LD_INT 10
15723: PPUSH
15724: CALL 13869 0 4
// AddComPlaceWeapon ( R_bunkr , zbrane_na_turrety2 [ difficulty ] ) ;
15728: LD_LOC 34
15732: PPUSH
15733: LD_EXP 72
15737: PUSH
15738: LD_OWVAR 67
15742: ARRAY
15743: PPUSH
15744: CALL_OW 208
// end ;
15748: END
// every 0 0$3 marked 220 do
15749: GO 15751
15751: DISABLE
// begin AddComUpgradeLab ( R_lab , b_lab_spacetime ) ;
15752: LD_LOC 33
15756: PPUSH
15757: LD_INT 14
15759: PPUSH
15760: CALL_OW 207
// AddComUpgradeLab ( R_lab , b_lab_weapon ) ;
15764: LD_LOC 33
15768: PPUSH
15769: LD_INT 10
15771: PPUSH
15772: CALL_OW 207
// pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
15776: LD_ADDR_LOC 23
15780: PUSH
15781: LD_LOC 21
15785: PPUSH
15786: LD_INT 22
15788: PUSH
15789: LD_EXP 2
15793: PUSH
15794: EMPTY
15795: LIST
15796: LIST
15797: PUSH
15798: LD_INT 1
15800: PUSH
15801: EMPTY
15802: LIST
15803: PUSH
15804: LD_INT 21
15806: PUSH
15807: LD_INT 1
15809: PUSH
15810: EMPTY
15811: LIST
15812: LIST
15813: PUSH
15814: EMPTY
15815: LIST
15816: LIST
15817: LIST
15818: PPUSH
15819: CALL_OW 70
15823: ST_TO_ADDR
// if pom [ 1 ] <> staveci [ 1 ] then
15824: LD_LOC 23
15828: PUSH
15829: LD_INT 1
15831: ARRAY
15832: PUSH
15833: LD_LOC 26
15837: PUSH
15838: LD_INT 1
15840: ARRAY
15841: NONEQUAL
15842: IFFALSE 15972
// case nah of 1 :
15844: LD_EXP 33
15848: PUSH
15849: LD_INT 1
15851: DOUBLE
15852: EQUAL
15853: IFTRUE 15857
15855: GO 15879
15857: POP
// AddComMoveXY ( pom [ 1 ] , 150 , 65 ) ; 2 :
15858: LD_LOC 23
15862: PUSH
15863: LD_INT 1
15865: ARRAY
15866: PPUSH
15867: LD_INT 150
15869: PPUSH
15870: LD_INT 65
15872: PPUSH
15873: CALL_OW 171
15877: GO 15970
15879: LD_INT 2
15881: DOUBLE
15882: EQUAL
15883: IFTRUE 15887
15885: GO 15909
15887: POP
// AddComMoveXY ( pom [ 1 ] , 150 , 65 ) ; 3 :
15888: LD_LOC 23
15892: PUSH
15893: LD_INT 1
15895: ARRAY
15896: PPUSH
15897: LD_INT 150
15899: PPUSH
15900: LD_INT 65
15902: PPUSH
15903: CALL_OW 171
15907: GO 15970
15909: LD_INT 3
15911: DOUBLE
15912: EQUAL
15913: IFTRUE 15917
15915: GO 15939
15917: POP
// AddComMoveXY ( pom [ 1 ] , 59 , 67 ) ; 4 :
15918: LD_LOC 23
15922: PUSH
15923: LD_INT 1
15925: ARRAY
15926: PPUSH
15927: LD_INT 59
15929: PPUSH
15930: LD_INT 67
15932: PPUSH
15933: CALL_OW 171
15937: GO 15970
15939: LD_INT 4
15941: DOUBLE
15942: EQUAL
15943: IFTRUE 15947
15945: GO 15969
15947: POP
// AddComMoveXY ( pom [ 1 ] , 105 , 93 ) ; end else
15948: LD_LOC 23
15952: PUSH
15953: LD_INT 1
15955: ARRAY
15956: PPUSH
15957: LD_INT 105
15959: PPUSH
15960: LD_INT 93
15962: PPUSH
15963: CALL_OW 171
15967: GO 15970
15969: POP
15970: GO 16098
// case nah of 1 :
15972: LD_EXP 33
15976: PUSH
15977: LD_INT 1
15979: DOUBLE
15980: EQUAL
15981: IFTRUE 15985
15983: GO 16007
15985: POP
// AddComMoveXY ( pom [ 2 ] , 150 , 65 ) ; 2 :
15986: LD_LOC 23
15990: PUSH
15991: LD_INT 2
15993: ARRAY
15994: PPUSH
15995: LD_INT 150
15997: PPUSH
15998: LD_INT 65
16000: PPUSH
16001: CALL_OW 171
16005: GO 16098
16007: LD_INT 2
16009: DOUBLE
16010: EQUAL
16011: IFTRUE 16015
16013: GO 16037
16015: POP
// AddComMoveXY ( pom [ 2 ] , 150 , 65 ) ; 3 :
16016: LD_LOC 23
16020: PUSH
16021: LD_INT 2
16023: ARRAY
16024: PPUSH
16025: LD_INT 150
16027: PPUSH
16028: LD_INT 65
16030: PPUSH
16031: CALL_OW 171
16035: GO 16098
16037: LD_INT 3
16039: DOUBLE
16040: EQUAL
16041: IFTRUE 16045
16043: GO 16067
16045: POP
// AddComMoveXY ( pom [ 2 ] , 59 , 67 ) ; 4 :
16046: LD_LOC 23
16050: PUSH
16051: LD_INT 2
16053: ARRAY
16054: PPUSH
16055: LD_INT 59
16057: PPUSH
16058: LD_INT 67
16060: PPUSH
16061: CALL_OW 171
16065: GO 16098
16067: LD_INT 4
16069: DOUBLE
16070: EQUAL
16071: IFTRUE 16075
16073: GO 16097
16075: POP
// AddComMoveXY ( pom [ 2 ] , 105 , 93 ) ; end ;
16076: LD_LOC 23
16080: PUSH
16081: LD_INT 2
16083: ARRAY
16084: PPUSH
16085: LD_INT 105
16087: PPUSH
16088: LD_INT 93
16090: PPUSH
16091: CALL_OW 171
16095: GO 16098
16097: POP
// end ;
16098: END
// every 0 0$1 marked 221 do
16099: GO 16101
16101: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_soldier ] ] ) ;
16102: LD_ADDR_LOC 23
16106: PUSH
16107: LD_LOC 21
16111: PPUSH
16112: LD_INT 22
16114: PUSH
16115: LD_EXP 2
16119: PUSH
16120: EMPTY
16121: LIST
16122: LIST
16123: PUSH
16124: LD_INT 1
16126: PUSH
16127: EMPTY
16128: LIST
16129: PUSH
16130: LD_INT 25
16132: PUSH
16133: LD_INT 1
16135: PUSH
16136: EMPTY
16137: LIST
16138: LIST
16139: PUSH
16140: EMPTY
16141: LIST
16142: LIST
16143: LIST
16144: PPUSH
16145: CALL_OW 70
16149: ST_TO_ADDR
// AddComEnterUnit ( pom [ 1 ] , R_bunkr ) ;
16150: LD_LOC 23
16154: PUSH
16155: LD_INT 1
16157: ARRAY
16158: PPUSH
16159: LD_LOC 34
16163: PPUSH
16164: CALL_OW 180
// enable ( 222 ) ;
16168: LD_INT 222
16170: ENABLE_MARKED
// end ;
16171: END
// every 0 0$2 marked 222 do
16172: GO 16174
16174: DISABLE
// begin SetXYS ( nah , 8 ) ;
16175: LD_EXP 33
16179: PPUSH
16180: LD_INT 8
16182: PPUSH
16183: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_gun , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16187: LD_LOC 26
16191: PUSH
16192: LD_INT 1
16194: ARRAY
16195: PPUSH
16196: LD_INT 17
16198: PPUSH
16199: LD_LOC 43
16203: PUSH
16204: LD_INT 1
16206: ARRAY
16207: PPUSH
16208: LD_LOC 43
16212: PUSH
16213: LD_INT 2
16215: ARRAY
16216: PPUSH
16217: LD_LOC 43
16221: PUSH
16222: LD_INT 3
16224: ARRAY
16225: PPUSH
16226: CALL_OW 205
// wait ( 0 0$5 ) ;
16230: LD_INT 175
16232: PPUSH
16233: CALL_OW 67
// enable ( 223 ) ;
16237: LD_INT 223
16239: ENABLE_MARKED
// end ;
16240: END
// every 0 0$5 marked 223 do
16241: GO 16243
16243: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_gun ] ] ) ;
16244: LD_ADDR_LOC 23
16248: PUSH
16249: LD_LOC 21
16253: PPUSH
16254: LD_INT 22
16256: PUSH
16257: LD_EXP 2
16261: PUSH
16262: EMPTY
16263: LIST
16264: LIST
16265: PUSH
16266: LD_INT 1
16268: PUSH
16269: EMPTY
16270: LIST
16271: PUSH
16272: LD_INT 30
16274: PUSH
16275: LD_INT 17
16277: PUSH
16278: EMPTY
16279: LIST
16280: LIST
16281: PUSH
16282: EMPTY
16283: LIST
16284: LIST
16285: LIST
16286: PPUSH
16287: CALL_OW 70
16291: ST_TO_ADDR
// if pom = 0 then
16292: LD_LOC 23
16296: PUSH
16297: LD_INT 0
16299: EQUAL
16300: IFFALSE 16360
// begin SetXYS ( nah , 8 ) ;
16302: LD_EXP 33
16306: PPUSH
16307: LD_INT 8
16309: PPUSH
16310: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_gun , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16314: LD_LOC 26
16318: PUSH
16319: LD_INT 1
16321: ARRAY
16322: PPUSH
16323: LD_INT 17
16325: PPUSH
16326: LD_LOC 43
16330: PUSH
16331: LD_INT 1
16333: ARRAY
16334: PPUSH
16335: LD_LOC 43
16339: PUSH
16340: LD_INT 2
16342: ARRAY
16343: PPUSH
16344: LD_LOC 43
16348: PUSH
16349: LD_INT 3
16351: ARRAY
16352: PPUSH
16353: CALL_OW 205
// enable ;
16357: ENABLE
// end else
16358: GO 16374
// begin R_egun = pom [ 1 ] ;
16360: LD_ADDR_LOC 37
16364: PUSH
16365: LD_LOC 23
16369: PUSH
16370: LD_INT 1
16372: ARRAY
16373: ST_TO_ADDR
// end ; end ;
16374: END
// every 0 0$2 marked 224 do
16375: GO 16377
16377: DISABLE
// begin SetXYS ( nah , 9 ) ;
16378: LD_EXP 33
16382: PPUSH
16383: LD_INT 9
16385: PPUSH
16386: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16390: LD_LOC 26
16394: PUSH
16395: LD_INT 1
16397: ARRAY
16398: PPUSH
16399: LD_INT 33
16401: PPUSH
16402: LD_LOC 43
16406: PUSH
16407: LD_INT 1
16409: ARRAY
16410: PPUSH
16411: LD_LOC 43
16415: PUSH
16416: LD_INT 2
16418: ARRAY
16419: PPUSH
16420: LD_LOC 43
16424: PUSH
16425: LD_INT 3
16427: ARRAY
16428: PPUSH
16429: CALL_OW 205
// wait ( 0 0$5 ) ;
16433: LD_INT 175
16435: PPUSH
16436: CALL_OW 67
// enable ( 225 ) ;
16440: LD_INT 225
16442: ENABLE_MARKED
// end ;
16443: END
// every 0 0$5 marked 225 do
16444: GO 16446
16446: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
16447: LD_ADDR_LOC 23
16451: PUSH
16452: LD_LOC 21
16456: PPUSH
16457: LD_INT 22
16459: PUSH
16460: LD_EXP 2
16464: PUSH
16465: EMPTY
16466: LIST
16467: LIST
16468: PUSH
16469: LD_INT 1
16471: PUSH
16472: EMPTY
16473: LIST
16474: PUSH
16475: LD_INT 30
16477: PUSH
16478: LD_INT 33
16480: PUSH
16481: EMPTY
16482: LIST
16483: LIST
16484: PUSH
16485: EMPTY
16486: LIST
16487: LIST
16488: LIST
16489: PPUSH
16490: CALL_OW 70
16494: ST_TO_ADDR
// if ( pom = 0 ) or ( pom = 1 and pom [ 1 ] = R_turret1 ) then
16495: LD_LOC 23
16499: PUSH
16500: LD_INT 0
16502: EQUAL
16503: PUSH
16504: LD_LOC 23
16508: PUSH
16509: LD_INT 1
16511: EQUAL
16512: PUSH
16513: LD_LOC 23
16517: PUSH
16518: LD_INT 1
16520: ARRAY
16521: PUSH
16522: LD_LOC 32
16526: EQUAL
16527: AND
16528: OR
16529: IFFALSE 16589
// begin SetXYS ( nah , 9 ) ;
16531: LD_EXP 33
16535: PPUSH
16536: LD_INT 9
16538: PPUSH
16539: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16543: LD_LOC 26
16547: PUSH
16548: LD_INT 1
16550: ARRAY
16551: PPUSH
16552: LD_INT 33
16554: PPUSH
16555: LD_LOC 43
16559: PUSH
16560: LD_INT 1
16562: ARRAY
16563: PPUSH
16564: LD_LOC 43
16568: PUSH
16569: LD_INT 2
16571: ARRAY
16572: PPUSH
16573: LD_LOC 43
16577: PUSH
16578: LD_INT 3
16580: ARRAY
16581: PPUSH
16582: CALL_OW 205
// enable ;
16586: ENABLE
// end else
16587: GO 16661
// begin if pom = 1 then
16589: LD_LOC 23
16593: PUSH
16594: LD_INT 1
16596: EQUAL
16597: IFFALSE 16615
// R_turret2 = pom [ 1 ] else
16599: LD_ADDR_LOC 35
16603: PUSH
16604: LD_LOC 23
16608: PUSH
16609: LD_INT 1
16611: ARRAY
16612: ST_TO_ADDR
16613: GO 16661
// if pom [ 1 ] = R_turret1 then
16615: LD_LOC 23
16619: PUSH
16620: LD_INT 1
16622: ARRAY
16623: PUSH
16624: LD_LOC 32
16628: EQUAL
16629: IFFALSE 16647
// R_turret2 = pom [ 2 ] else
16631: LD_ADDR_LOC 35
16635: PUSH
16636: LD_LOC 23
16640: PUSH
16641: LD_INT 2
16643: ARRAY
16644: ST_TO_ADDR
16645: GO 16661
// R_turret2 = pom [ 1 ] ;
16647: LD_ADDR_LOC 35
16651: PUSH
16652: LD_LOC 23
16656: PUSH
16657: LD_INT 1
16659: ARRAY
16660: ST_TO_ADDR
// end ; end ;
16661: END
// every 0 0$1 marked 226 do
16662: GO 16664
16664: DISABLE
// begin AddComPlaceWeapon ( R_turret2 , zbrane_na_turrety3 [ difficulty ] ) ;
16665: LD_LOC 35
16669: PPUSH
16670: LD_EXP 73
16674: PUSH
16675: LD_OWVAR 67
16679: ARRAY
16680: PPUSH
16681: CALL_OW 208
// enable ( 227 ) ;
16685: LD_INT 227
16687: ENABLE_MARKED
// enable ( 221 ) ;
16688: LD_INT 221
16690: ENABLE_MARKED
// end ;
16691: END
// every 0 0$2 marked 227 do
16692: GO 16694
16694: DISABLE
// begin SetXYS ( nah , 10 ) ;
16695: LD_EXP 33
16699: PPUSH
16700: LD_INT 10
16702: PPUSH
16703: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16707: LD_LOC 26
16711: PUSH
16712: LD_INT 1
16714: ARRAY
16715: PPUSH
16716: LD_INT 33
16718: PPUSH
16719: LD_LOC 43
16723: PUSH
16724: LD_INT 1
16726: ARRAY
16727: PPUSH
16728: LD_LOC 43
16732: PUSH
16733: LD_INT 2
16735: ARRAY
16736: PPUSH
16737: LD_LOC 43
16741: PUSH
16742: LD_INT 3
16744: ARRAY
16745: PPUSH
16746: CALL_OW 205
// wait ( 0 0$5 ) ;
16750: LD_INT 175
16752: PPUSH
16753: CALL_OW 67
// enable ( 228 ) ;
16757: LD_INT 228
16759: ENABLE_MARKED
// end ;
16760: END
// every 0 0$5 marked 228 do
16761: GO 16763
16763: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
16764: LD_ADDR_LOC 23
16768: PUSH
16769: LD_LOC 21
16773: PPUSH
16774: LD_INT 22
16776: PUSH
16777: LD_EXP 2
16781: PUSH
16782: EMPTY
16783: LIST
16784: LIST
16785: PUSH
16786: LD_INT 1
16788: PUSH
16789: EMPTY
16790: LIST
16791: PUSH
16792: LD_INT 30
16794: PUSH
16795: LD_INT 33
16797: PUSH
16798: EMPTY
16799: LIST
16800: LIST
16801: PUSH
16802: EMPTY
16803: LIST
16804: LIST
16805: LIST
16806: PPUSH
16807: CALL_OW 70
16811: ST_TO_ADDR
// if ( pom = 0 ) or ( pom = 1 and pom [ 1 ] = R_turret1 ) or ( pom = 1 and pom [ 1 ] = R_turret2 ) or ( pom = 2 and ( ( pom [ 1 ] = R_turret1 and pom [ 2 ] = R_turret2 ) or ( pom [ 1 ] = R_turret2 and pom [ 2 ] = R_turret1 ) ) ) then
16812: LD_LOC 23
16816: PUSH
16817: LD_INT 0
16819: EQUAL
16820: PUSH
16821: LD_LOC 23
16825: PUSH
16826: LD_INT 1
16828: EQUAL
16829: PUSH
16830: LD_LOC 23
16834: PUSH
16835: LD_INT 1
16837: ARRAY
16838: PUSH
16839: LD_LOC 32
16843: EQUAL
16844: AND
16845: OR
16846: PUSH
16847: LD_LOC 23
16851: PUSH
16852: LD_INT 1
16854: EQUAL
16855: PUSH
16856: LD_LOC 23
16860: PUSH
16861: LD_INT 1
16863: ARRAY
16864: PUSH
16865: LD_LOC 35
16869: EQUAL
16870: AND
16871: OR
16872: PUSH
16873: LD_LOC 23
16877: PUSH
16878: LD_INT 2
16880: EQUAL
16881: PUSH
16882: LD_LOC 23
16886: PUSH
16887: LD_INT 1
16889: ARRAY
16890: PUSH
16891: LD_LOC 32
16895: EQUAL
16896: PUSH
16897: LD_LOC 23
16901: PUSH
16902: LD_INT 2
16904: ARRAY
16905: PUSH
16906: LD_LOC 35
16910: EQUAL
16911: AND
16912: PUSH
16913: LD_LOC 23
16917: PUSH
16918: LD_INT 1
16920: ARRAY
16921: PUSH
16922: LD_LOC 35
16926: EQUAL
16927: PUSH
16928: LD_LOC 23
16932: PUSH
16933: LD_INT 2
16935: ARRAY
16936: PUSH
16937: LD_LOC 32
16941: EQUAL
16942: AND
16943: OR
16944: AND
16945: OR
16946: IFFALSE 17006
// begin SetXYS ( nah , 10 ) ;
16948: LD_EXP 33
16952: PPUSH
16953: LD_INT 10
16955: PPUSH
16956: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16960: LD_LOC 26
16964: PUSH
16965: LD_INT 1
16967: ARRAY
16968: PPUSH
16969: LD_INT 33
16971: PPUSH
16972: LD_LOC 43
16976: PUSH
16977: LD_INT 1
16979: ARRAY
16980: PPUSH
16981: LD_LOC 43
16985: PUSH
16986: LD_INT 2
16988: ARRAY
16989: PPUSH
16990: LD_LOC 43
16994: PUSH
16995: LD_INT 3
16997: ARRAY
16998: PPUSH
16999: CALL_OW 205
// enable ;
17003: ENABLE
// end else
17004: GO 17222
// begin if pom = 1 then
17006: LD_LOC 23
17010: PUSH
17011: LD_INT 1
17013: EQUAL
17014: IFFALSE 17030
// R_turret3 = pom [ 1 ] ;
17016: LD_ADDR_LOC 36
17020: PUSH
17021: LD_LOC 23
17025: PUSH
17026: LD_INT 1
17028: ARRAY
17029: ST_TO_ADDR
// if pom = 2 then
17030: LD_LOC 23
17034: PUSH
17035: LD_INT 2
17037: EQUAL
17038: IFFALSE 17102
// if pom [ 1 ] = R_turret1 or pom [ 1 ] = R_turret2 then
17040: LD_LOC 23
17044: PUSH
17045: LD_INT 1
17047: ARRAY
17048: PUSH
17049: LD_LOC 32
17053: EQUAL
17054: PUSH
17055: LD_LOC 23
17059: PUSH
17060: LD_INT 1
17062: ARRAY
17063: PUSH
17064: LD_LOC 35
17068: EQUAL
17069: OR
17070: IFFALSE 17088
// R_turret3 = pom [ 2 ] else
17072: LD_ADDR_LOC 36
17076: PUSH
17077: LD_LOC 23
17081: PUSH
17082: LD_INT 2
17084: ARRAY
17085: ST_TO_ADDR
17086: GO 17102
// R_turret3 = pom [ 1 ] ;
17088: LD_ADDR_LOC 36
17092: PUSH
17093: LD_LOC 23
17097: PUSH
17098: LD_INT 1
17100: ARRAY
17101: ST_TO_ADDR
// if pom = 3 then
17102: LD_LOC 23
17106: PUSH
17107: LD_INT 3
17109: EQUAL
17110: IFFALSE 17222
// begin if pom [ 1 ] <> R_turret1 and pom [ 1 ] <> R_turret2 then
17112: LD_LOC 23
17116: PUSH
17117: LD_INT 1
17119: ARRAY
17120: PUSH
17121: LD_LOC 32
17125: NONEQUAL
17126: PUSH
17127: LD_LOC 23
17131: PUSH
17132: LD_INT 1
17134: ARRAY
17135: PUSH
17136: LD_LOC 35
17140: NONEQUAL
17141: AND
17142: IFFALSE 17160
// R_turret3 = pom [ 1 ] else
17144: LD_ADDR_LOC 36
17148: PUSH
17149: LD_LOC 23
17153: PUSH
17154: LD_INT 1
17156: ARRAY
17157: ST_TO_ADDR
17158: GO 17222
// if pom [ 2 ] <> R_turret1 and pom [ 2 ] <> R_turret2 then
17160: LD_LOC 23
17164: PUSH
17165: LD_INT 2
17167: ARRAY
17168: PUSH
17169: LD_LOC 32
17173: NONEQUAL
17174: PUSH
17175: LD_LOC 23
17179: PUSH
17180: LD_INT 2
17182: ARRAY
17183: PUSH
17184: LD_LOC 35
17188: NONEQUAL
17189: AND
17190: IFFALSE 17208
// R_turret3 = pom [ 2 ] else
17192: LD_ADDR_LOC 36
17196: PUSH
17197: LD_LOC 23
17201: PUSH
17202: LD_INT 2
17204: ARRAY
17205: ST_TO_ADDR
17206: GO 17222
// R_turret3 = pom [ 3 ] ;
17208: LD_ADDR_LOC 36
17212: PUSH
17213: LD_LOC 23
17217: PUSH
17218: LD_INT 3
17220: ARRAY
17221: ST_TO_ADDR
// end ; end ; end ;
17222: END
// every 0 0$1 marked 229 do
17223: GO 17225
17225: DISABLE
// begin AddComPlaceWeapon ( R_turret3 , zbrane_na_turrety3 [ difficulty ] ) ;
17226: LD_LOC 36
17230: PPUSH
17231: LD_EXP 73
17235: PUSH
17236: LD_OWVAR 67
17240: ARRAY
17241: PPUSH
17242: CALL_OW 208
// enable ( 230 ) ;
17246: LD_INT 230
17248: ENABLE_MARKED
// end ;
17249: END
// every 0 0$1 marked 230 do
17250: GO 17252
17252: DISABLE
// begin SetXYS ( nah , 11 ) ;
17253: LD_EXP 33
17257: PPUSH
17258: LD_INT 11
17260: PPUSH
17261: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_armoury , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17265: LD_LOC 26
17269: PUSH
17270: LD_INT 1
17272: ARRAY
17273: PPUSH
17274: LD_INT 4
17276: PPUSH
17277: LD_LOC 43
17281: PUSH
17282: LD_INT 1
17284: ARRAY
17285: PPUSH
17286: LD_LOC 43
17290: PUSH
17291: LD_INT 2
17293: ARRAY
17294: PPUSH
17295: LD_LOC 43
17299: PUSH
17300: LD_INT 3
17302: ARRAY
17303: PPUSH
17304: CALL_OW 205
// wait ( 0 0$5 ) ;
17308: LD_INT 175
17310: PPUSH
17311: CALL_OW 67
// enable ( 231 ) ;
17315: LD_INT 231
17317: ENABLE_MARKED
// end ;
17318: END
// every 0 0$5 marked 231 do
17319: GO 17321
17321: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_armoury ] ] ) ;
17322: LD_ADDR_LOC 23
17326: PUSH
17327: LD_LOC 21
17331: PPUSH
17332: LD_INT 22
17334: PUSH
17335: LD_EXP 2
17339: PUSH
17340: EMPTY
17341: LIST
17342: LIST
17343: PUSH
17344: LD_INT 1
17346: PUSH
17347: EMPTY
17348: LIST
17349: PUSH
17350: LD_INT 30
17352: PUSH
17353: LD_INT 4
17355: PUSH
17356: EMPTY
17357: LIST
17358: LIST
17359: PUSH
17360: EMPTY
17361: LIST
17362: LIST
17363: LIST
17364: PPUSH
17365: CALL_OW 70
17369: ST_TO_ADDR
// if pom = 0 then
17370: LD_LOC 23
17374: PUSH
17375: LD_INT 0
17377: EQUAL
17378: IFFALSE 17438
// begin SetXYS ( nah , 11 ) ;
17380: LD_EXP 33
17384: PPUSH
17385: LD_INT 11
17387: PPUSH
17388: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_armoury , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17392: LD_LOC 26
17396: PUSH
17397: LD_INT 1
17399: ARRAY
17400: PPUSH
17401: LD_INT 4
17403: PPUSH
17404: LD_LOC 43
17408: PUSH
17409: LD_INT 1
17411: ARRAY
17412: PPUSH
17413: LD_LOC 43
17417: PUSH
17418: LD_INT 2
17420: ARRAY
17421: PPUSH
17422: LD_LOC 43
17426: PUSH
17427: LD_INT 3
17429: ARRAY
17430: PPUSH
17431: CALL_OW 205
// enable ;
17435: ENABLE
// end else
17436: GO 17452
// R_arm = pom [ 1 ] end ;
17438: LD_ADDR_LOC 38
17442: PUSH
17443: LD_LOC 23
17447: PUSH
17448: LD_INT 1
17450: ARRAY
17451: ST_TO_ADDR
17452: END
// every 0 0$1 marked 232 do
17453: GO 17455
17455: DISABLE
// begin enable ( 233 ) ;
17456: LD_INT 233
17458: ENABLE_MARKED
// end ;
17459: END
// every 0 0$1 marked 233 do
17460: GO 17462
17462: DISABLE
// begin SetXYS ( nah , 12 ) ;
17463: LD_EXP 33
17467: PPUSH
17468: LD_INT 12
17470: PPUSH
17471: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_track , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17475: LD_LOC 26
17479: PUSH
17480: LD_INT 1
17482: ARRAY
17483: PPUSH
17484: LD_INT 16
17486: PPUSH
17487: LD_LOC 43
17491: PUSH
17492: LD_INT 1
17494: ARRAY
17495: PPUSH
17496: LD_LOC 43
17500: PUSH
17501: LD_INT 2
17503: ARRAY
17504: PPUSH
17505: LD_LOC 43
17509: PUSH
17510: LD_INT 3
17512: ARRAY
17513: PPUSH
17514: CALL_OW 205
// wait ( 0 0$5 ) ;
17518: LD_INT 175
17520: PPUSH
17521: CALL_OW 67
// enable ( 234 ) ;
17525: LD_INT 234
17527: ENABLE_MARKED
// end ;
17528: END
// every 0 0$5 marked 234 do
17529: GO 17531
17531: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_track ] ] ) ;
17532: LD_ADDR_LOC 23
17536: PUSH
17537: LD_LOC 21
17541: PPUSH
17542: LD_INT 22
17544: PUSH
17545: LD_EXP 2
17549: PUSH
17550: EMPTY
17551: LIST
17552: LIST
17553: PUSH
17554: LD_INT 1
17556: PUSH
17557: EMPTY
17558: LIST
17559: PUSH
17560: LD_INT 30
17562: PUSH
17563: LD_INT 16
17565: PUSH
17566: EMPTY
17567: LIST
17568: LIST
17569: PUSH
17570: EMPTY
17571: LIST
17572: LIST
17573: LIST
17574: PPUSH
17575: CALL_OW 70
17579: ST_TO_ADDR
// if pom = 0 then
17580: LD_LOC 23
17584: PUSH
17585: LD_INT 0
17587: EQUAL
17588: IFFALSE 17648
// begin SetXYS ( nah , 12 ) ;
17590: LD_EXP 33
17594: PPUSH
17595: LD_INT 12
17597: PPUSH
17598: CALL 18192 0 2
// ComBuild ( staveci [ 1 ] , b_ext_track , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17602: LD_LOC 26
17606: PUSH
17607: LD_INT 1
17609: ARRAY
17610: PPUSH
17611: LD_INT 16
17613: PPUSH
17614: LD_LOC 43
17618: PUSH
17619: LD_INT 1
17621: ARRAY
17622: PPUSH
17623: LD_LOC 43
17627: PUSH
17628: LD_INT 2
17630: ARRAY
17631: PPUSH
17632: LD_LOC 43
17636: PUSH
17637: LD_INT 3
17639: ARRAY
17640: PPUSH
17641: CALL_OW 145
// enable ;
17645: ENABLE
// end else
17646: GO 17662
// R_etra = pom [ 1 ] ;
17648: LD_ADDR_LOC 40
17652: PUSH
17653: LD_LOC 23
17657: PUSH
17658: LD_INT 1
17660: ARRAY
17661: ST_TO_ADDR
// end ;
17662: END
// every 0 0$1 marked 235 do
17663: GO 17665
17665: DISABLE
// begin SetXYS ( nah , 13 ) ;
17666: LD_EXP 33
17670: PPUSH
17671: LD_INT 13
17673: PPUSH
17674: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17678: LD_LOC 26
17682: PUSH
17683: LD_INT 1
17685: ARRAY
17686: PPUSH
17687: LD_INT 24
17689: PPUSH
17690: LD_LOC 43
17694: PUSH
17695: LD_INT 1
17697: ARRAY
17698: PPUSH
17699: LD_LOC 43
17703: PUSH
17704: LD_INT 2
17706: ARRAY
17707: PPUSH
17708: LD_LOC 43
17712: PUSH
17713: LD_INT 3
17715: ARRAY
17716: PPUSH
17717: CALL_OW 205
// wait ( 0 0$5 ) ;
17721: LD_INT 175
17723: PPUSH
17724: CALL_OW 67
// enable ( 236 ) ;
17728: LD_INT 236
17730: ENABLE_MARKED
// end ;
17731: END
// every 0 0$5 marked 236 do
17732: GO 17734
17734: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_computer ] ] ) ;
17735: LD_ADDR_LOC 23
17739: PUSH
17740: LD_LOC 21
17744: PPUSH
17745: LD_INT 22
17747: PUSH
17748: LD_EXP 2
17752: PUSH
17753: EMPTY
17754: LIST
17755: LIST
17756: PUSH
17757: LD_INT 1
17759: PUSH
17760: EMPTY
17761: LIST
17762: PUSH
17763: LD_INT 30
17765: PUSH
17766: LD_INT 24
17768: PUSH
17769: EMPTY
17770: LIST
17771: LIST
17772: PUSH
17773: EMPTY
17774: LIST
17775: LIST
17776: LIST
17777: PPUSH
17778: CALL_OW 70
17782: ST_TO_ADDR
// if pom = 0 then
17783: LD_LOC 23
17787: PUSH
17788: LD_INT 0
17790: EQUAL
17791: IFFALSE 17851
// begin SetXYS ( nah , 13 ) ;
17793: LD_EXP 33
17797: PPUSH
17798: LD_INT 13
17800: PPUSH
17801: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17805: LD_LOC 26
17809: PUSH
17810: LD_INT 1
17812: ARRAY
17813: PPUSH
17814: LD_INT 24
17816: PPUSH
17817: LD_LOC 43
17821: PUSH
17822: LD_INT 1
17824: ARRAY
17825: PPUSH
17826: LD_LOC 43
17830: PUSH
17831: LD_INT 2
17833: ARRAY
17834: PPUSH
17835: LD_LOC 43
17839: PUSH
17840: LD_INT 3
17842: ARRAY
17843: PPUSH
17844: CALL_OW 205
// enable ;
17848: ENABLE
// end else
17849: GO 17865
// R_ecomp = pom [ 1 ] ;
17851: LD_ADDR_LOC 39
17855: PUSH
17856: LD_LOC 23
17860: PUSH
17861: LD_INT 1
17863: ARRAY
17864: ST_TO_ADDR
// end ;
17865: END
// every 0 0$1 marked 237 do
17866: GO 17868
17868: DISABLE
// begin SetXYS ( nah , 14 ) ;
17869: LD_EXP 33
17873: PPUSH
17874: LD_INT 14
17876: PPUSH
17877: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17881: LD_LOC 26
17885: PUSH
17886: LD_INT 1
17888: ARRAY
17889: PPUSH
17890: LD_INT 28
17892: PPUSH
17893: LD_LOC 43
17897: PUSH
17898: LD_INT 1
17900: ARRAY
17901: PPUSH
17902: LD_LOC 43
17906: PUSH
17907: LD_INT 2
17909: ARRAY
17910: PPUSH
17911: LD_LOC 43
17915: PUSH
17916: LD_INT 3
17918: ARRAY
17919: PPUSH
17920: CALL_OW 205
// wait ( 0 0$5 ) ;
17924: LD_INT 175
17926: PPUSH
17927: CALL_OW 67
// enable ( 238 ) ;
17931: LD_INT 238
17933: ENABLE_MARKED
// end ;
17934: END
// every 0 0$5 marked 238 do
17935: GO 17937
17937: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_siberite_power ] ] ) ;
17938: LD_ADDR_LOC 23
17942: PUSH
17943: LD_LOC 21
17947: PPUSH
17948: LD_INT 22
17950: PUSH
17951: LD_EXP 2
17955: PUSH
17956: EMPTY
17957: LIST
17958: LIST
17959: PUSH
17960: LD_INT 1
17962: PUSH
17963: EMPTY
17964: LIST
17965: PUSH
17966: LD_INT 30
17968: PUSH
17969: LD_INT 28
17971: PUSH
17972: EMPTY
17973: LIST
17974: LIST
17975: PUSH
17976: EMPTY
17977: LIST
17978: LIST
17979: LIST
17980: PPUSH
17981: CALL_OW 70
17985: ST_TO_ADDR
// if pom = 0 then
17986: LD_LOC 23
17990: PUSH
17991: LD_INT 0
17993: EQUAL
17994: IFFALSE 18054
// begin SetXYS ( nah , 14 ) ;
17996: LD_EXP 33
18000: PPUSH
18001: LD_INT 14
18003: PPUSH
18004: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18008: LD_LOC 26
18012: PUSH
18013: LD_INT 1
18015: ARRAY
18016: PPUSH
18017: LD_INT 28
18019: PPUSH
18020: LD_LOC 43
18024: PUSH
18025: LD_INT 1
18027: ARRAY
18028: PPUSH
18029: LD_LOC 43
18033: PUSH
18034: LD_INT 2
18036: ARRAY
18037: PPUSH
18038: LD_LOC 43
18042: PUSH
18043: LD_INT 3
18045: ARRAY
18046: PPUSH
18047: CALL_OW 205
// enable ;
18051: ENABLE
// end else
18052: GO 18184
// if pom = 1 and pom [ 1 ] = R_sel then
18054: LD_LOC 23
18058: PUSH
18059: LD_INT 1
18061: EQUAL
18062: PUSH
18063: LD_LOC 23
18067: PUSH
18068: LD_INT 1
18070: ARRAY
18071: PUSH
18072: LD_LOC 30
18076: EQUAL
18077: AND
18078: IFFALSE 18138
// begin SetXYS ( nah , 14 ) ;
18080: LD_EXP 33
18084: PPUSH
18085: LD_INT 14
18087: PPUSH
18088: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18092: LD_LOC 26
18096: PUSH
18097: LD_INT 1
18099: ARRAY
18100: PPUSH
18101: LD_INT 28
18103: PPUSH
18104: LD_LOC 43
18108: PUSH
18109: LD_INT 1
18111: ARRAY
18112: PPUSH
18113: LD_LOC 43
18117: PUSH
18118: LD_INT 2
18120: ARRAY
18121: PPUSH
18122: LD_LOC 43
18126: PUSH
18127: LD_INT 3
18129: ARRAY
18130: PPUSH
18131: CALL_OW 205
// enable ;
18135: ENABLE
// end else
18136: GO 18184
// if pom [ 1 ] = R_sel then
18138: LD_LOC 23
18142: PUSH
18143: LD_INT 1
18145: ARRAY
18146: PUSH
18147: LD_LOC 30
18151: EQUAL
18152: IFFALSE 18170
// R_oel = pom [ 1 ] else
18154: LD_ADDR_LOC 42
18158: PUSH
18159: LD_LOC 23
18163: PUSH
18164: LD_INT 1
18166: ARRAY
18167: ST_TO_ADDR
18168: GO 18184
// R_oel = pom [ 2 ] ;
18170: LD_ADDR_LOC 42
18174: PUSH
18175: LD_LOC 23
18179: PUSH
18180: LD_INT 2
18182: ARRAY
18183: ST_TO_ADDR
// end ;
18184: END
// every 0 0$1 marked 239 do
18185: GO 18187
18187: DISABLE
// begin disable ( 248 ) ;
18188: LD_INT 248
18190: DISABLE_MARKED
// end ;
18191: END
// function SetXYS ( um , b ) ; begin
18192: LD_INT 0
18194: PPUSH
// if um = 2 then
18195: LD_VAR 0 1
18199: PUSH
18200: LD_INT 2
18202: EQUAL
18203: IFFALSE 18213
// um = 1 ;
18205: LD_ADDR_VAR 0 1
18209: PUSH
18210: LD_INT 1
18212: ST_TO_ADDR
// case b of 1 :
18213: LD_VAR 0 2
18217: PUSH
18218: LD_INT 1
18220: DOUBLE
18221: EQUAL
18222: IFTRUE 18226
18224: GO 18325
18226: POP
// case um of 1 :
18227: LD_VAR 0 1
18231: PUSH
18232: LD_INT 1
18234: DOUBLE
18235: EQUAL
18236: IFTRUE 18240
18238: GO 18262
18240: POP
// XYS = [ 137 , 65 , 2 ] ; 4 :
18241: LD_ADDR_LOC 43
18245: PUSH
18246: LD_INT 137
18248: PUSH
18249: LD_INT 65
18251: PUSH
18252: LD_INT 2
18254: PUSH
18255: EMPTY
18256: LIST
18257: LIST
18258: LIST
18259: ST_TO_ADDR
18260: GO 18323
18262: LD_INT 4
18264: DOUBLE
18265: EQUAL
18266: IFTRUE 18270
18268: GO 18292
18270: POP
// XYS = [ 97 , 112 , 0 ] ; 3 :
18271: LD_ADDR_LOC 43
18275: PUSH
18276: LD_INT 97
18278: PUSH
18279: LD_INT 112
18281: PUSH
18282: LD_INT 0
18284: PUSH
18285: EMPTY
18286: LIST
18287: LIST
18288: LIST
18289: ST_TO_ADDR
18290: GO 18323
18292: LD_INT 3
18294: DOUBLE
18295: EQUAL
18296: IFTRUE 18300
18298: GO 18322
18300: POP
// XYS = [ 48 , 73 , 3 ] ; end ; 2 :
18301: LD_ADDR_LOC 43
18305: PUSH
18306: LD_INT 48
18308: PUSH
18309: LD_INT 73
18311: PUSH
18312: LD_INT 3
18314: PUSH
18315: EMPTY
18316: LIST
18317: LIST
18318: LIST
18319: ST_TO_ADDR
18320: GO 18323
18322: POP
18323: GO 19824
18325: LD_INT 2
18327: DOUBLE
18328: EQUAL
18329: IFTRUE 18333
18331: GO 18432
18333: POP
// case um of 1 :
18334: LD_VAR 0 1
18338: PUSH
18339: LD_INT 1
18341: DOUBLE
18342: EQUAL
18343: IFTRUE 18347
18345: GO 18369
18347: POP
// XYS = [ 150 , 80 , 3 ] ; 4 :
18348: LD_ADDR_LOC 43
18352: PUSH
18353: LD_INT 150
18355: PUSH
18356: LD_INT 80
18358: PUSH
18359: LD_INT 3
18361: PUSH
18362: EMPTY
18363: LIST
18364: LIST
18365: LIST
18366: ST_TO_ADDR
18367: GO 18430
18369: LD_INT 4
18371: DOUBLE
18372: EQUAL
18373: IFTRUE 18377
18375: GO 18399
18377: POP
// XYS = [ 91 , 109 , 3 ] ; 3 :
18378: LD_ADDR_LOC 43
18382: PUSH
18383: LD_INT 91
18385: PUSH
18386: LD_INT 109
18388: PUSH
18389: LD_INT 3
18391: PUSH
18392: EMPTY
18393: LIST
18394: LIST
18395: LIST
18396: ST_TO_ADDR
18397: GO 18430
18399: LD_INT 3
18401: DOUBLE
18402: EQUAL
18403: IFTRUE 18407
18405: GO 18429
18407: POP
// XYS = [ 43 , 71 , 2 ] ; end ; 3 :
18408: LD_ADDR_LOC 43
18412: PUSH
18413: LD_INT 43
18415: PUSH
18416: LD_INT 71
18418: PUSH
18419: LD_INT 2
18421: PUSH
18422: EMPTY
18423: LIST
18424: LIST
18425: LIST
18426: ST_TO_ADDR
18427: GO 18430
18429: POP
18430: GO 19824
18432: LD_INT 3
18434: DOUBLE
18435: EQUAL
18436: IFTRUE 18440
18438: GO 18539
18440: POP
// case um of 1 :
18441: LD_VAR 0 1
18445: PUSH
18446: LD_INT 1
18448: DOUBLE
18449: EQUAL
18450: IFTRUE 18454
18452: GO 18476
18454: POP
// XYS = [ 140 , 63 , 3 ] ; 4 :
18455: LD_ADDR_LOC 43
18459: PUSH
18460: LD_INT 140
18462: PUSH
18463: LD_INT 63
18465: PUSH
18466: LD_INT 3
18468: PUSH
18469: EMPTY
18470: LIST
18471: LIST
18472: LIST
18473: ST_TO_ADDR
18474: GO 18537
18476: LD_INT 4
18478: DOUBLE
18479: EQUAL
18480: IFTRUE 18484
18482: GO 18506
18484: POP
// XYS = [ 105 , 112 , 4 ] ; 3 :
18485: LD_ADDR_LOC 43
18489: PUSH
18490: LD_INT 105
18492: PUSH
18493: LD_INT 112
18495: PUSH
18496: LD_INT 4
18498: PUSH
18499: EMPTY
18500: LIST
18501: LIST
18502: LIST
18503: ST_TO_ADDR
18504: GO 18537
18506: LD_INT 3
18508: DOUBLE
18509: EQUAL
18510: IFTRUE 18514
18512: GO 18536
18514: POP
// XYS = [ 37 , 70 , 2 ] ; end ; 4 :
18515: LD_ADDR_LOC 43
18519: PUSH
18520: LD_INT 37
18522: PUSH
18523: LD_INT 70
18525: PUSH
18526: LD_INT 2
18528: PUSH
18529: EMPTY
18530: LIST
18531: LIST
18532: LIST
18533: ST_TO_ADDR
18534: GO 18537
18536: POP
18537: GO 19824
18539: LD_INT 4
18541: DOUBLE
18542: EQUAL
18543: IFTRUE 18547
18545: GO 18646
18547: POP
// case um of 1 :
18548: LD_VAR 0 1
18552: PUSH
18553: LD_INT 1
18555: DOUBLE
18556: EQUAL
18557: IFTRUE 18561
18559: GO 18583
18561: POP
// XYS = [ 160 , 90 , 5 ] ; 4 :
18562: LD_ADDR_LOC 43
18566: PUSH
18567: LD_INT 160
18569: PUSH
18570: LD_INT 90
18572: PUSH
18573: LD_INT 5
18575: PUSH
18576: EMPTY
18577: LIST
18578: LIST
18579: LIST
18580: ST_TO_ADDR
18581: GO 18644
18583: LD_INT 4
18585: DOUBLE
18586: EQUAL
18587: IFTRUE 18591
18589: GO 18613
18591: POP
// XYS = [ 99 , 94 , 3 ] ; 3 :
18592: LD_ADDR_LOC 43
18596: PUSH
18597: LD_INT 99
18599: PUSH
18600: LD_INT 94
18602: PUSH
18603: LD_INT 3
18605: PUSH
18606: EMPTY
18607: LIST
18608: LIST
18609: LIST
18610: ST_TO_ADDR
18611: GO 18644
18613: LD_INT 3
18615: DOUBLE
18616: EQUAL
18617: IFTRUE 18621
18619: GO 18643
18621: POP
// XYS = [ 44 , 79 , 1 ] ; end ; 5 :
18622: LD_ADDR_LOC 43
18626: PUSH
18627: LD_INT 44
18629: PUSH
18630: LD_INT 79
18632: PUSH
18633: LD_INT 1
18635: PUSH
18636: EMPTY
18637: LIST
18638: LIST
18639: LIST
18640: ST_TO_ADDR
18641: GO 18644
18643: POP
18644: GO 19824
18646: LD_INT 5
18648: DOUBLE
18649: EQUAL
18650: IFTRUE 18654
18652: GO 18753
18654: POP
// case um of 1 :
18655: LD_VAR 0 1
18659: PUSH
18660: LD_INT 1
18662: DOUBLE
18663: EQUAL
18664: IFTRUE 18668
18666: GO 18690
18668: POP
// XYS = [ 133 , 72 , 4 ] ; 4 :
18669: LD_ADDR_LOC 43
18673: PUSH
18674: LD_INT 133
18676: PUSH
18677: LD_INT 72
18679: PUSH
18680: LD_INT 4
18682: PUSH
18683: EMPTY
18684: LIST
18685: LIST
18686: LIST
18687: ST_TO_ADDR
18688: GO 18751
18690: LD_INT 4
18692: DOUBLE
18693: EQUAL
18694: IFTRUE 18698
18696: GO 18720
18698: POP
// XYS = [ 86 , 84 , 2 ] ; 3 :
18699: LD_ADDR_LOC 43
18703: PUSH
18704: LD_INT 86
18706: PUSH
18707: LD_INT 84
18709: PUSH
18710: LD_INT 2
18712: PUSH
18713: EMPTY
18714: LIST
18715: LIST
18716: LIST
18717: ST_TO_ADDR
18718: GO 18751
18720: LD_INT 3
18722: DOUBLE
18723: EQUAL
18724: IFTRUE 18728
18726: GO 18750
18728: POP
// XYS = [ 75 , 90 , 2 ] ; end ; 6 :
18729: LD_ADDR_LOC 43
18733: PUSH
18734: LD_INT 75
18736: PUSH
18737: LD_INT 90
18739: PUSH
18740: LD_INT 2
18742: PUSH
18743: EMPTY
18744: LIST
18745: LIST
18746: LIST
18747: ST_TO_ADDR
18748: GO 18751
18750: POP
18751: GO 19824
18753: LD_INT 6
18755: DOUBLE
18756: EQUAL
18757: IFTRUE 18761
18759: GO 18860
18761: POP
// case um of 1 :
18762: LD_VAR 0 1
18766: PUSH
18767: LD_INT 1
18769: DOUBLE
18770: EQUAL
18771: IFTRUE 18775
18773: GO 18797
18775: POP
// XYS = [ 152 , 71 , 4 ] ; 4 :
18776: LD_ADDR_LOC 43
18780: PUSH
18781: LD_INT 152
18783: PUSH
18784: LD_INT 71
18786: PUSH
18787: LD_INT 4
18789: PUSH
18790: EMPTY
18791: LIST
18792: LIST
18793: LIST
18794: ST_TO_ADDR
18795: GO 18858
18797: LD_INT 4
18799: DOUBLE
18800: EQUAL
18801: IFTRUE 18805
18803: GO 18827
18805: POP
// XYS = [ 103 , 106 , 5 ] ; 3 :
18806: LD_ADDR_LOC 43
18810: PUSH
18811: LD_INT 103
18813: PUSH
18814: LD_INT 106
18816: PUSH
18817: LD_INT 5
18819: PUSH
18820: EMPTY
18821: LIST
18822: LIST
18823: LIST
18824: ST_TO_ADDR
18825: GO 18858
18827: LD_INT 3
18829: DOUBLE
18830: EQUAL
18831: IFTRUE 18835
18833: GO 18857
18835: POP
// XYS = [ 50 , 90 , 3 ] ; end ; 7 :
18836: LD_ADDR_LOC 43
18840: PUSH
18841: LD_INT 50
18843: PUSH
18844: LD_INT 90
18846: PUSH
18847: LD_INT 3
18849: PUSH
18850: EMPTY
18851: LIST
18852: LIST
18853: LIST
18854: ST_TO_ADDR
18855: GO 18858
18857: POP
18858: GO 19824
18860: LD_INT 7
18862: DOUBLE
18863: EQUAL
18864: IFTRUE 18868
18866: GO 18967
18868: POP
// case um of 1 :
18869: LD_VAR 0 1
18873: PUSH
18874: LD_INT 1
18876: DOUBLE
18877: EQUAL
18878: IFTRUE 18882
18880: GO 18904
18882: POP
// XYS = [ 143 , 56 , 2 ] ; 4 :
18883: LD_ADDR_LOC 43
18887: PUSH
18888: LD_INT 143
18890: PUSH
18891: LD_INT 56
18893: PUSH
18894: LD_INT 2
18896: PUSH
18897: EMPTY
18898: LIST
18899: LIST
18900: LIST
18901: ST_TO_ADDR
18902: GO 18965
18904: LD_INT 4
18906: DOUBLE
18907: EQUAL
18908: IFTRUE 18912
18910: GO 18934
18912: POP
// XYS = [ 105 , 93 , 2 ] ; 3 :
18913: LD_ADDR_LOC 43
18917: PUSH
18918: LD_INT 105
18920: PUSH
18921: LD_INT 93
18923: PUSH
18924: LD_INT 2
18926: PUSH
18927: EMPTY
18928: LIST
18929: LIST
18930: LIST
18931: ST_TO_ADDR
18932: GO 18965
18934: LD_INT 3
18936: DOUBLE
18937: EQUAL
18938: IFTRUE 18942
18940: GO 18964
18942: POP
// XYS = [ 59 , 67 , 2 ] ; end ; 8 :
18943: LD_ADDR_LOC 43
18947: PUSH
18948: LD_INT 59
18950: PUSH
18951: LD_INT 67
18953: PUSH
18954: LD_INT 2
18956: PUSH
18957: EMPTY
18958: LIST
18959: LIST
18960: LIST
18961: ST_TO_ADDR
18962: GO 18965
18964: POP
18965: GO 19824
18967: LD_INT 8
18969: DOUBLE
18970: EQUAL
18971: IFTRUE 18975
18973: GO 19074
18975: POP
// case um of 1 :
18976: LD_VAR 0 1
18980: PUSH
18981: LD_INT 1
18983: DOUBLE
18984: EQUAL
18985: IFTRUE 18989
18987: GO 19011
18989: POP
// XYS = [ 160 , 93 , 0 ] ; 4 :
18990: LD_ADDR_LOC 43
18994: PUSH
18995: LD_INT 160
18997: PUSH
18998: LD_INT 93
19000: PUSH
19001: LD_INT 0
19003: PUSH
19004: EMPTY
19005: LIST
19006: LIST
19007: LIST
19008: ST_TO_ADDR
19009: GO 19072
19011: LD_INT 4
19013: DOUBLE
19014: EQUAL
19015: IFTRUE 19019
19017: GO 19041
19019: POP
// XYS = [ 102 , 94 , 4 ] ; 3 :
19020: LD_ADDR_LOC 43
19024: PUSH
19025: LD_INT 102
19027: PUSH
19028: LD_INT 94
19030: PUSH
19031: LD_INT 4
19033: PUSH
19034: EMPTY
19035: LIST
19036: LIST
19037: LIST
19038: ST_TO_ADDR
19039: GO 19072
19041: LD_INT 3
19043: DOUBLE
19044: EQUAL
19045: IFTRUE 19049
19047: GO 19071
19049: POP
// XYS = [ 41 , 76 , 2 ] ; end ; 9 :
19050: LD_ADDR_LOC 43
19054: PUSH
19055: LD_INT 41
19057: PUSH
19058: LD_INT 76
19060: PUSH
19061: LD_INT 2
19063: PUSH
19064: EMPTY
19065: LIST
19066: LIST
19067: LIST
19068: ST_TO_ADDR
19069: GO 19072
19071: POP
19072: GO 19824
19074: LD_INT 9
19076: DOUBLE
19077: EQUAL
19078: IFTRUE 19082
19080: GO 19181
19082: POP
// case um of 1 :
19083: LD_VAR 0 1
19087: PUSH
19088: LD_INT 1
19090: DOUBLE
19091: EQUAL
19092: IFTRUE 19096
19094: GO 19118
19096: POP
// XYS = [ 140 , 74 , 3 ] ; 4 :
19097: LD_ADDR_LOC 43
19101: PUSH
19102: LD_INT 140
19104: PUSH
19105: LD_INT 74
19107: PUSH
19108: LD_INT 3
19110: PUSH
19111: EMPTY
19112: LIST
19113: LIST
19114: LIST
19115: ST_TO_ADDR
19116: GO 19179
19118: LD_INT 4
19120: DOUBLE
19121: EQUAL
19122: IFTRUE 19126
19124: GO 19148
19126: POP
// XYS = [ 93 , 85 , 2 ] ; 3 :
19127: LD_ADDR_LOC 43
19131: PUSH
19132: LD_INT 93
19134: PUSH
19135: LD_INT 85
19137: PUSH
19138: LD_INT 2
19140: PUSH
19141: EMPTY
19142: LIST
19143: LIST
19144: LIST
19145: ST_TO_ADDR
19146: GO 19179
19148: LD_INT 3
19150: DOUBLE
19151: EQUAL
19152: IFTRUE 19156
19154: GO 19178
19156: POP
// XYS = [ 60 , 93 , 2 ] ; end ; 10 :
19157: LD_ADDR_LOC 43
19161: PUSH
19162: LD_INT 60
19164: PUSH
19165: LD_INT 93
19167: PUSH
19168: LD_INT 2
19170: PUSH
19171: EMPTY
19172: LIST
19173: LIST
19174: LIST
19175: ST_TO_ADDR
19176: GO 19179
19178: POP
19179: GO 19824
19181: LD_INT 10
19183: DOUBLE
19184: EQUAL
19185: IFTRUE 19189
19187: GO 19288
19189: POP
// case um of 1 :
19190: LD_VAR 0 1
19194: PUSH
19195: LD_INT 1
19197: DOUBLE
19198: EQUAL
19199: IFTRUE 19203
19201: GO 19225
19203: POP
// XYS = [ 157 , 98 , 5 ] ; 4 :
19204: LD_ADDR_LOC 43
19208: PUSH
19209: LD_INT 157
19211: PUSH
19212: LD_INT 98
19214: PUSH
19215: LD_INT 5
19217: PUSH
19218: EMPTY
19219: LIST
19220: LIST
19221: LIST
19222: ST_TO_ADDR
19223: GO 19286
19225: LD_INT 4
19227: DOUBLE
19228: EQUAL
19229: IFTRUE 19233
19231: GO 19255
19233: POP
// XYS = [ 85 , 96 , 2 ] ; 3 :
19234: LD_ADDR_LOC 43
19238: PUSH
19239: LD_INT 85
19241: PUSH
19242: LD_INT 96
19244: PUSH
19245: LD_INT 2
19247: PUSH
19248: EMPTY
19249: LIST
19250: LIST
19251: LIST
19252: ST_TO_ADDR
19253: GO 19286
19255: LD_INT 3
19257: DOUBLE
19258: EQUAL
19259: IFTRUE 19263
19261: GO 19285
19263: POP
// XYS = [ 63 , 87 , 2 ] ; end ; 11 :
19264: LD_ADDR_LOC 43
19268: PUSH
19269: LD_INT 63
19271: PUSH
19272: LD_INT 87
19274: PUSH
19275: LD_INT 2
19277: PUSH
19278: EMPTY
19279: LIST
19280: LIST
19281: LIST
19282: ST_TO_ADDR
19283: GO 19286
19285: POP
19286: GO 19824
19288: LD_INT 11
19290: DOUBLE
19291: EQUAL
19292: IFTRUE 19296
19294: GO 19395
19296: POP
// case um of 1 :
19297: LD_VAR 0 1
19301: PUSH
19302: LD_INT 1
19304: DOUBLE
19305: EQUAL
19306: IFTRUE 19310
19308: GO 19332
19310: POP
// XYS = [ 144 , 61 , 2 ] ; 4 :
19311: LD_ADDR_LOC 43
19315: PUSH
19316: LD_INT 144
19318: PUSH
19319: LD_INT 61
19321: PUSH
19322: LD_INT 2
19324: PUSH
19325: EMPTY
19326: LIST
19327: LIST
19328: LIST
19329: ST_TO_ADDR
19330: GO 19393
19332: LD_INT 4
19334: DOUBLE
19335: EQUAL
19336: IFTRUE 19340
19338: GO 19362
19340: POP
// XYS = [ 102 , 113 , 0 ] ; 3 :
19341: LD_ADDR_LOC 43
19345: PUSH
19346: LD_INT 102
19348: PUSH
19349: LD_INT 113
19351: PUSH
19352: LD_INT 0
19354: PUSH
19355: EMPTY
19356: LIST
19357: LIST
19358: LIST
19359: ST_TO_ADDR
19360: GO 19393
19362: LD_INT 3
19364: DOUBLE
19365: EQUAL
19366: IFTRUE 19370
19368: GO 19392
19370: POP
// XYS = [ 55 , 88 , 0 ] ; end ; 12 :
19371: LD_ADDR_LOC 43
19375: PUSH
19376: LD_INT 55
19378: PUSH
19379: LD_INT 88
19381: PUSH
19382: LD_INT 0
19384: PUSH
19385: EMPTY
19386: LIST
19387: LIST
19388: LIST
19389: ST_TO_ADDR
19390: GO 19393
19392: POP
19393: GO 19824
19395: LD_INT 12
19397: DOUBLE
19398: EQUAL
19399: IFTRUE 19403
19401: GO 19502
19403: POP
// case um of 1 :
19404: LD_VAR 0 1
19408: PUSH
19409: LD_INT 1
19411: DOUBLE
19412: EQUAL
19413: IFTRUE 19417
19415: GO 19439
19417: POP
// XYS = [ 164 , 94 , 5 ] ; 4 :
19418: LD_ADDR_LOC 43
19422: PUSH
19423: LD_INT 164
19425: PUSH
19426: LD_INT 94
19428: PUSH
19429: LD_INT 5
19431: PUSH
19432: EMPTY
19433: LIST
19434: LIST
19435: LIST
19436: ST_TO_ADDR
19437: GO 19500
19439: LD_INT 4
19441: DOUBLE
19442: EQUAL
19443: IFTRUE 19447
19445: GO 19469
19447: POP
// XYS = [ 96 , 91 , 2 ] ; 3 :
19448: LD_ADDR_LOC 43
19452: PUSH
19453: LD_INT 96
19455: PUSH
19456: LD_INT 91
19458: PUSH
19459: LD_INT 2
19461: PUSH
19462: EMPTY
19463: LIST
19464: LIST
19465: LIST
19466: ST_TO_ADDR
19467: GO 19500
19469: LD_INT 3
19471: DOUBLE
19472: EQUAL
19473: IFTRUE 19477
19475: GO 19499
19477: POP
// XYS = [ 44 , 82 , 0 ] ; end ; 13 :
19478: LD_ADDR_LOC 43
19482: PUSH
19483: LD_INT 44
19485: PUSH
19486: LD_INT 82
19488: PUSH
19489: LD_INT 0
19491: PUSH
19492: EMPTY
19493: LIST
19494: LIST
19495: LIST
19496: ST_TO_ADDR
19497: GO 19500
19499: POP
19500: GO 19824
19502: LD_INT 13
19504: DOUBLE
19505: EQUAL
19506: IFTRUE 19510
19508: GO 19609
19510: POP
// case um of 1 :
19511: LD_VAR 0 1
19515: PUSH
19516: LD_INT 1
19518: DOUBLE
19519: EQUAL
19520: IFTRUE 19524
19522: GO 19546
19524: POP
// XYS = [ 156 , 90 , 1 ] ; 4 :
19525: LD_ADDR_LOC 43
19529: PUSH
19530: LD_INT 156
19532: PUSH
19533: LD_INT 90
19535: PUSH
19536: LD_INT 1
19538: PUSH
19539: EMPTY
19540: LIST
19541: LIST
19542: LIST
19543: ST_TO_ADDR
19544: GO 19607
19546: LD_INT 4
19548: DOUBLE
19549: EQUAL
19550: IFTRUE 19554
19552: GO 19576
19554: POP
// XYS = [ 95 , 94 , 1 ] ; 3 :
19555: LD_ADDR_LOC 43
19559: PUSH
19560: LD_INT 95
19562: PUSH
19563: LD_INT 94
19565: PUSH
19566: LD_INT 1
19568: PUSH
19569: EMPTY
19570: LIST
19571: LIST
19572: LIST
19573: ST_TO_ADDR
19574: GO 19607
19576: LD_INT 3
19578: DOUBLE
19579: EQUAL
19580: IFTRUE 19584
19582: GO 19606
19584: POP
// XYS = [ 44 , 75 , 3 ] ; end ; 14 :
19585: LD_ADDR_LOC 43
19589: PUSH
19590: LD_INT 44
19592: PUSH
19593: LD_INT 75
19595: PUSH
19596: LD_INT 3
19598: PUSH
19599: EMPTY
19600: LIST
19601: LIST
19602: LIST
19603: ST_TO_ADDR
19604: GO 19607
19606: POP
19607: GO 19824
19609: LD_INT 14
19611: DOUBLE
19612: EQUAL
19613: IFTRUE 19617
19615: GO 19716
19617: POP
// case um of 1 :
19618: LD_VAR 0 1
19622: PUSH
19623: LD_INT 1
19625: DOUBLE
19626: EQUAL
19627: IFTRUE 19631
19629: GO 19653
19631: POP
// XYS = [ 152 , 84 , 0 ] ; 4 :
19632: LD_ADDR_LOC 43
19636: PUSH
19637: LD_INT 152
19639: PUSH
19640: LD_INT 84
19642: PUSH
19643: LD_INT 0
19645: PUSH
19646: EMPTY
19647: LIST
19648: LIST
19649: LIST
19650: ST_TO_ADDR
19651: GO 19714
19653: LD_INT 4
19655: DOUBLE
19656: EQUAL
19657: IFTRUE 19661
19659: GO 19683
19661: POP
// XYS = [ 106 , 116 , 2 ] ; 3 :
19662: LD_ADDR_LOC 43
19666: PUSH
19667: LD_INT 106
19669: PUSH
19670: LD_INT 116
19672: PUSH
19673: LD_INT 2
19675: PUSH
19676: EMPTY
19677: LIST
19678: LIST
19679: LIST
19680: ST_TO_ADDR
19681: GO 19714
19683: LD_INT 3
19685: DOUBLE
19686: EQUAL
19687: IFTRUE 19691
19689: GO 19713
19691: POP
// XYS = [ 52 , 75 , 1 ] ; end ; 15 :
19692: LD_ADDR_LOC 43
19696: PUSH
19697: LD_INT 52
19699: PUSH
19700: LD_INT 75
19702: PUSH
19703: LD_INT 1
19705: PUSH
19706: EMPTY
19707: LIST
19708: LIST
19709: LIST
19710: ST_TO_ADDR
19711: GO 19714
19713: POP
19714: GO 19824
19716: LD_INT 15
19718: DOUBLE
19719: EQUAL
19720: IFTRUE 19724
19722: GO 19823
19724: POP
// case um of 1 :
19725: LD_VAR 0 1
19729: PUSH
19730: LD_INT 1
19732: DOUBLE
19733: EQUAL
19734: IFTRUE 19738
19736: GO 19760
19738: POP
// XYS = [ 160 , 86 , 3 ] ; 4 :
19739: LD_ADDR_LOC 43
19743: PUSH
19744: LD_INT 160
19746: PUSH
19747: LD_INT 86
19749: PUSH
19750: LD_INT 3
19752: PUSH
19753: EMPTY
19754: LIST
19755: LIST
19756: LIST
19757: ST_TO_ADDR
19758: GO 19821
19760: LD_INT 4
19762: DOUBLE
19763: EQUAL
19764: IFTRUE 19768
19766: GO 19790
19768: POP
// XYS = [ 99 , 90 , 3 ] ; 3 :
19769: LD_ADDR_LOC 43
19773: PUSH
19774: LD_INT 99
19776: PUSH
19777: LD_INT 90
19779: PUSH
19780: LD_INT 3
19782: PUSH
19783: EMPTY
19784: LIST
19785: LIST
19786: LIST
19787: ST_TO_ADDR
19788: GO 19821
19790: LD_INT 3
19792: DOUBLE
19793: EQUAL
19794: IFTRUE 19798
19796: GO 19820
19798: POP
// XYS = [ 48 , 83 , 5 ] ; end ; end ;
19799: LD_ADDR_LOC 43
19803: PUSH
19804: LD_INT 48
19806: PUSH
19807: LD_INT 83
19809: PUSH
19810: LD_INT 5
19812: PUSH
19813: EMPTY
19814: LIST
19815: LIST
19816: LIST
19817: ST_TO_ADDR
19818: GO 19821
19820: POP
19821: GO 19824
19823: POP
// end ;
19824: LD_VAR 0 3
19828: RET
// every 0 0$3 trigger RUSI_AUTA = 1 marked 299 do var pom1 ;
19829: LD_EXP 34
19833: PUSH
19834: LD_INT 1
19836: EQUAL
19837: IFFALSE 20174
19839: GO 19841
19841: DISABLE
19842: LD_INT 0
19844: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_weapon , ru_cargo_bay ] ] ) ;
19845: LD_ADDR_LOC 23
19849: PUSH
19850: LD_INT 22
19852: PUSH
19853: LD_EXP 2
19857: PUSH
19858: EMPTY
19859: LIST
19860: LIST
19861: PUSH
19862: LD_INT 1
19864: PUSH
19865: EMPTY
19866: LIST
19867: PUSH
19868: LD_INT 34
19870: PUSH
19871: LD_INT 51
19873: PUSH
19874: EMPTY
19875: LIST
19876: LIST
19877: PUSH
19878: EMPTY
19879: LIST
19880: LIST
19881: LIST
19882: PPUSH
19883: CALL_OW 69
19887: ST_TO_ADDR
// if pom = 0 then
19888: LD_LOC 23
19892: PUSH
19893: LD_INT 0
19895: EQUAL
19896: IFFALSE 19908
// RUSI_AUTA = 0 else
19898: LD_ADDR_EXP 34
19902: PUSH
19903: LD_INT 0
19905: ST_TO_ADDR
19906: GO 20174
// begin for i in pom do
19908: LD_ADDR_LOC 22
19912: PUSH
19913: LD_LOC 23
19917: PUSH
19918: FOR_IN
19919: IFFALSE 20171
// if not Carry ( i ) then
19921: LD_LOC 22
19925: PPUSH
19926: CALL_OW 281
19930: NOT
19931: IFFALSE 19965
// begin ComMoveXY ( i , 144 , 118 ) ;
19933: LD_LOC 22
19937: PPUSH
19938: LD_INT 144
19940: PPUSH
19941: LD_INT 118
19943: PPUSH
19944: CALL_OW 111
// AddComMoveXY ( i , 143 , 116 ) ;
19948: LD_LOC 22
19952: PPUSH
19953: LD_INT 143
19955: PPUSH
19956: LD_INT 116
19958: PPUSH
19959: CALL_OW 171
// end else
19963: GO 20169
// begin ComMoveXY ( i , GetX ( R_depot ) , GetY ( R_depot ) ) ;
19965: LD_LOC 22
19969: PPUSH
19970: LD_LOC 28
19974: PPUSH
19975: CALL_OW 250
19979: PPUSH
19980: LD_LOC 28
19984: PPUSH
19985: CALL_OW 251
19989: PPUSH
19990: CALL_OW 111
// wait ( 0 0$2 ) ;
19994: LD_INT 70
19996: PPUSH
19997: CALL_OW 67
// pom1 = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
20001: LD_ADDR_VAR 0 1
20005: PUSH
20006: LD_INT 22
20008: PUSH
20009: LD_EXP 2
20013: PUSH
20014: EMPTY
20015: LIST
20016: LIST
20017: PUSH
20018: LD_INT 2
20020: PUSH
20021: LD_INT 30
20023: PUSH
20024: LD_INT 0
20026: PUSH
20027: EMPTY
20028: LIST
20029: LIST
20030: PUSH
20031: LD_INT 30
20033: PUSH
20034: LD_INT 1
20036: PUSH
20037: EMPTY
20038: LIST
20039: LIST
20040: PUSH
20041: EMPTY
20042: LIST
20043: LIST
20044: LIST
20045: PUSH
20046: EMPTY
20047: LIST
20048: LIST
20049: PPUSH
20050: CALL_OW 69
20054: ST_TO_ADDR
// if pom1 > 0 then
20055: LD_VAR 0 1
20059: PUSH
20060: LD_INT 0
20062: GREATER
20063: IFFALSE 20169
// begin pom1 = pom1 [ 1 ] ;
20065: LD_ADDR_VAR 0 1
20069: PUSH
20070: LD_VAR 0 1
20074: PUSH
20075: LD_INT 1
20077: ARRAY
20078: ST_TO_ADDR
// AddResourceType ( GetBase ( pom1 ) , mat_siberit , GetCargo ( i , mat_siberit ) ) ;
20079: LD_VAR 0 1
20083: PPUSH
20084: CALL_OW 274
20088: PPUSH
20089: LD_INT 3
20091: PPUSH
20092: LD_LOC 22
20096: PPUSH
20097: LD_INT 3
20099: PPUSH
20100: CALL_OW 289
20104: PPUSH
20105: CALL_OW 276
// AddResourceType ( GetBase ( pom1 ) , mat_oil , GetCargo ( i , mat_oil ) ) ;
20109: LD_VAR 0 1
20113: PPUSH
20114: CALL_OW 274
20118: PPUSH
20119: LD_INT 2
20121: PPUSH
20122: LD_LOC 22
20126: PPUSH
20127: LD_INT 2
20129: PPUSH
20130: CALL_OW 289
20134: PPUSH
20135: CALL_OW 276
// SetCargo ( i , mat_siberit , 0 ) ;
20139: LD_LOC 22
20143: PPUSH
20144: LD_INT 3
20146: PPUSH
20147: LD_INT 0
20149: PPUSH
20150: CALL_OW 290
// SetCargo ( i , mat_oil , 0 ) ;
20154: LD_LOC 22
20158: PPUSH
20159: LD_INT 2
20161: PPUSH
20162: LD_INT 0
20164: PPUSH
20165: CALL_OW 290
// end ; end ;
20169: GO 19918
20171: POP
20172: POP
// enable ;
20173: ENABLE
// end ; end ;
20174: PPOPN 1
20176: END
// every 0 0$5 trigger RUSI_AUTA = 1 do
20177: LD_EXP 34
20181: PUSH
20182: LD_INT 1
20184: EQUAL
20185: IFFALSE 20285
20187: GO 20189
20189: DISABLE
// begin pom = FilterUnitsInArea ( Seber , [ [ f_side , Rusi ] , [ f_and ] , [ f_weapon , ru_cargo_bay ] ] ) ;
20190: LD_ADDR_LOC 23
20194: PUSH
20195: LD_INT 16
20197: PPUSH
20198: LD_INT 22
20200: PUSH
20201: LD_EXP 2
20205: PUSH
20206: EMPTY
20207: LIST
20208: LIST
20209: PUSH
20210: LD_INT 1
20212: PUSH
20213: EMPTY
20214: LIST
20215: PUSH
20216: LD_INT 34
20218: PUSH
20219: LD_INT 51
20221: PUSH
20222: EMPTY
20223: LIST
20224: LIST
20225: PUSH
20226: EMPTY
20227: LIST
20228: LIST
20229: LIST
20230: PPUSH
20231: CALL_OW 70
20235: ST_TO_ADDR
// if pom > 0 then
20236: LD_LOC 23
20240: PUSH
20241: LD_INT 0
20243: GREATER
20244: IFFALSE 20284
// begin for i in pom do
20246: LD_ADDR_LOC 22
20250: PUSH
20251: LD_LOC 23
20255: PUSH
20256: FOR_IN
20257: IFFALSE 20282
// if not Carry ( i ) then
20259: LD_LOC 22
20263: PPUSH
20264: CALL_OW 281
20268: NOT
20269: IFFALSE 20280
// RemoveUnit ( i ) ;
20271: LD_LOC 22
20275: PPUSH
20276: CALL_OW 64
20280: GO 20256
20282: POP
20283: POP
// end ; enable ;
20284: ENABLE
// end ;
20285: END
// every 0 0$17 marked 241 do
20286: GO 20288
20288: DISABLE
// begin wait ( wait2 [ difficulty ] ) ;
20289: LD_EXP 64
20293: PUSH
20294: LD_OWVAR 67
20298: ARRAY
20299: PPUSH
20300: CALL_OW 67
// cheat_source ( R_depot , 200 , 50 , 50 ) ;
20304: LD_LOC 28
20308: PPUSH
20309: LD_INT 200
20311: PPUSH
20312: LD_INT 50
20314: PPUSH
20315: LD_INT 50
20317: PPUSH
20318: CALL 13869 0 4
// for i := 1 to pocaut [ difficulty ] do
20322: LD_ADDR_LOC 22
20326: PUSH
20327: DOUBLE
20328: LD_INT 1
20330: DEC
20331: ST_TO_ADDR
20332: LD_EXP 63
20336: PUSH
20337: LD_OWVAR 67
20341: ARRAY
20342: PUSH
20343: FOR_TO
20344: IFFALSE 20377
// begin AddComConstruct ( R_factory , ru_heavy_tracked , engine_siberite , control_computer , zbranrusi [ difficulty ] ) ;
20346: LD_LOC 31
20350: PPUSH
20351: LD_INT 24
20353: PPUSH
20354: LD_INT 3
20356: PPUSH
20357: LD_INT 3
20359: PPUSH
20360: LD_EXP 61
20364: PUSH
20365: LD_OWVAR 67
20369: ARRAY
20370: PPUSH
20371: CALL_OW 185
// end ;
20375: GO 20343
20377: POP
20378: POP
// AddComConstruct ( R_factory , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
20379: LD_LOC 31
20383: PPUSH
20384: LD_INT 24
20386: PPUSH
20387: LD_INT 1
20389: PPUSH
20390: LD_INT 3
20392: PPUSH
20393: LD_INT 46
20395: PPUSH
20396: CALL_OW 185
// enable ( 242 ) ;
20400: LD_INT 242
20402: ENABLE_MARKED
// end ;
20403: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = pocaut [ difficulty ] + 1 marked 242 do
20404: LD_INT 22
20406: PUSH
20407: LD_EXP 2
20411: PUSH
20412: EMPTY
20413: LIST
20414: LIST
20415: PUSH
20416: LD_INT 1
20418: PUSH
20419: EMPTY
20420: LIST
20421: PUSH
20422: LD_INT 33
20424: PUSH
20425: LD_INT 3
20427: PUSH
20428: EMPTY
20429: LIST
20430: LIST
20431: PUSH
20432: EMPTY
20433: LIST
20434: LIST
20435: LIST
20436: PPUSH
20437: CALL_OW 69
20441: PUSH
20442: LD_EXP 63
20446: PUSH
20447: LD_OWVAR 67
20451: ARRAY
20452: PUSH
20453: LD_INT 1
20455: PLUS
20456: EQUAL
20457: IFFALSE 20790
20459: GO 20461
20461: DISABLE
// begin UTOK := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
20462: LD_ADDR_LOC 44
20466: PUSH
20467: LD_INT 22
20469: PUSH
20470: LD_EXP 2
20474: PUSH
20475: EMPTY
20476: LIST
20477: LIST
20478: PUSH
20479: LD_INT 1
20481: PUSH
20482: EMPTY
20483: LIST
20484: PUSH
20485: LD_INT 33
20487: PUSH
20488: LD_INT 3
20490: PUSH
20491: EMPTY
20492: LIST
20493: LIST
20494: PUSH
20495: EMPTY
20496: LIST
20497: LIST
20498: LIST
20499: PPUSH
20500: CALL_OW 69
20504: ST_TO_ADDR
// atway := GetAttackWay ;
20505: LD_ADDR_LOC 45
20509: PUSH
20510: CALL 20791 0 0
20514: ST_TO_ADDR
// for i in atway do
20515: LD_ADDR_LOC 22
20519: PUSH
20520: LD_LOC 45
20524: PUSH
20525: FOR_IN
20526: IFFALSE 20557
// AddComAgressiveMove ( UTOK , i [ 1 ] , i [ 2 ] ) ;
20528: LD_LOC 44
20532: PPUSH
20533: LD_LOC 22
20537: PUSH
20538: LD_INT 1
20540: ARRAY
20541: PPUSH
20542: LD_LOC 22
20546: PUSH
20547: LD_INT 2
20549: ARRAY
20550: PPUSH
20551: CALL_OW 174
20555: GO 20525
20557: POP
20558: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
20559: LD_ADDR_LOC 23
20563: PUSH
20564: LD_INT 22
20566: PUSH
20567: LD_EXP 3
20571: PUSH
20572: EMPTY
20573: LIST
20574: LIST
20575: PUSH
20576: LD_INT 1
20578: PUSH
20579: EMPTY
20580: LIST
20581: PUSH
20582: LD_INT 21
20584: PUSH
20585: LD_INT 3
20587: PUSH
20588: EMPTY
20589: LIST
20590: LIST
20591: PUSH
20592: EMPTY
20593: LIST
20594: LIST
20595: LIST
20596: PPUSH
20597: CALL_OW 69
20601: ST_TO_ADDR
// if pom > 0 then
20602: LD_LOC 23
20606: PUSH
20607: LD_INT 0
20609: GREATER
20610: IFFALSE 20649
// AddComAgressiveMove ( UTOK , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
20612: LD_LOC 44
20616: PPUSH
20617: LD_LOC 23
20621: PUSH
20622: LD_INT 1
20624: ARRAY
20625: PPUSH
20626: CALL_OW 250
20630: PPUSH
20631: LD_LOC 23
20635: PUSH
20636: LD_INT 1
20638: ARRAY
20639: PPUSH
20640: CALL_OW 251
20644: PPUSH
20645: CALL_OW 174
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
20649: LD_ADDR_LOC 23
20653: PUSH
20654: LD_INT 22
20656: PUSH
20657: LD_EXP 3
20661: PUSH
20662: EMPTY
20663: LIST
20664: LIST
20665: PUSH
20666: LD_INT 2
20668: PUSH
20669: LD_INT 21
20671: PUSH
20672: LD_INT 1
20674: PUSH
20675: EMPTY
20676: LIST
20677: LIST
20678: PUSH
20679: LD_INT 21
20681: PUSH
20682: LD_INT 2
20684: PUSH
20685: EMPTY
20686: LIST
20687: LIST
20688: PUSH
20689: EMPTY
20690: LIST
20691: LIST
20692: LIST
20693: PUSH
20694: EMPTY
20695: LIST
20696: LIST
20697: PPUSH
20698: CALL_OW 69
20702: ST_TO_ADDR
// if pom > 0 then
20703: LD_LOC 23
20707: PUSH
20708: LD_INT 0
20710: GREATER
20711: IFFALSE 20774
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
20713: LD_LOC 44
20717: PPUSH
20718: LD_LOC 23
20722: PUSH
20723: LD_INT 1
20725: ARRAY
20726: PPUSH
20727: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
20731: LD_LOC 44
20735: PPUSH
20736: LD_EXP 40
20740: PPUSH
20741: CALL_OW 250
20745: PPUSH
20746: LD_EXP 40
20750: PPUSH
20751: CALL_OW 251
20755: PPUSH
20756: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
20760: LD_LOC 44
20764: PPUSH
20765: LD_EXP 40
20769: PPUSH
20770: CALL_OW 175
// end ; Dial := 4 ;
20774: LD_ADDR_EXP 38
20778: PUSH
20779: LD_INT 4
20781: ST_TO_ADDR
// PRU_ATTACK = 3 ;
20782: LD_ADDR_EXP 35
20786: PUSH
20787: LD_INT 3
20789: ST_TO_ADDR
// end ;
20790: END
// function GetAttackWay ; begin
20791: LD_INT 0
20793: PPUSH
// pomnah := Rand ( 1 , 4 ) ;
20794: LD_ADDR_LOC 46
20798: PUSH
20799: LD_INT 1
20801: PPUSH
20802: LD_INT 4
20804: PPUSH
20805: CALL_OW 12
20809: ST_TO_ADDR
// case nah of 1 , 2 :
20810: LD_EXP 33
20814: PUSH
20815: LD_INT 1
20817: DOUBLE
20818: EQUAL
20819: IFTRUE 20829
20821: LD_INT 2
20823: DOUBLE
20824: EQUAL
20825: IFTRUE 20829
20827: GO 21129
20829: POP
// case pomnah of 1 :
20830: LD_LOC 46
20834: PUSH
20835: LD_INT 1
20837: DOUBLE
20838: EQUAL
20839: IFTRUE 20843
20841: GO 20952
20843: POP
// pom = [ [ 123 , 83 ] , [ 95 , 102 ] , [ 72 , 99 ] , [ 56 , 78 ] , [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
20844: LD_ADDR_LOC 23
20848: PUSH
20849: LD_INT 123
20851: PUSH
20852: LD_INT 83
20854: PUSH
20855: EMPTY
20856: LIST
20857: LIST
20858: PUSH
20859: LD_INT 95
20861: PUSH
20862: LD_INT 102
20864: PUSH
20865: EMPTY
20866: LIST
20867: LIST
20868: PUSH
20869: LD_INT 72
20871: PUSH
20872: LD_INT 99
20874: PUSH
20875: EMPTY
20876: LIST
20877: LIST
20878: PUSH
20879: LD_INT 56
20881: PUSH
20882: LD_INT 78
20884: PUSH
20885: EMPTY
20886: LIST
20887: LIST
20888: PUSH
20889: LD_INT 66
20891: PUSH
20892: LD_INT 55
20894: PUSH
20895: EMPTY
20896: LIST
20897: LIST
20898: PUSH
20899: LD_INT 81
20901: PUSH
20902: LD_INT 49
20904: PUSH
20905: EMPTY
20906: LIST
20907: LIST
20908: PUSH
20909: LD_INT 92
20911: PUSH
20912: LD_INT 47
20914: PUSH
20915: EMPTY
20916: LIST
20917: LIST
20918: PUSH
20919: LD_INT 101
20921: PUSH
20922: LD_INT 47
20924: PUSH
20925: EMPTY
20926: LIST
20927: LIST
20928: PUSH
20929: LD_INT 106
20931: PUSH
20932: LD_INT 37
20934: PUSH
20935: EMPTY
20936: LIST
20937: LIST
20938: PUSH
20939: EMPTY
20940: LIST
20941: LIST
20942: LIST
20943: LIST
20944: LIST
20945: LIST
20946: LIST
20947: LIST
20948: LIST
20949: ST_TO_ADDR
20950: GO 21127
20952: LD_INT 2
20954: DOUBLE
20955: EQUAL
20956: IFTRUE 20960
20958: GO 21047
20960: POP
// pom = [ [ 123 , 83 ] , [ 95 , 102 ] , [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 , 4 :
20961: LD_ADDR_LOC 23
20965: PUSH
20966: LD_INT 123
20968: PUSH
20969: LD_INT 83
20971: PUSH
20972: EMPTY
20973: LIST
20974: LIST
20975: PUSH
20976: LD_INT 95
20978: PUSH
20979: LD_INT 102
20981: PUSH
20982: EMPTY
20983: LIST
20984: LIST
20985: PUSH
20986: LD_INT 78
20988: PUSH
20989: LD_INT 61
20991: PUSH
20992: EMPTY
20993: LIST
20994: LIST
20995: PUSH
20996: LD_INT 78
20998: PUSH
20999: LD_INT 49
21001: PUSH
21002: EMPTY
21003: LIST
21004: LIST
21005: PUSH
21006: LD_INT 90
21008: PUSH
21009: LD_INT 46
21011: PUSH
21012: EMPTY
21013: LIST
21014: LIST
21015: PUSH
21016: LD_INT 103
21018: PUSH
21019: LD_INT 45
21021: PUSH
21022: EMPTY
21023: LIST
21024: LIST
21025: PUSH
21026: LD_INT 108
21028: PUSH
21029: LD_INT 35
21031: PUSH
21032: EMPTY
21033: LIST
21034: LIST
21035: PUSH
21036: EMPTY
21037: LIST
21038: LIST
21039: LIST
21040: LIST
21041: LIST
21042: LIST
21043: LIST
21044: ST_TO_ADDR
21045: GO 21127
21047: LD_INT 3
21049: DOUBLE
21050: EQUAL
21051: IFTRUE 21061
21053: LD_INT 4
21055: DOUBLE
21056: EQUAL
21057: IFTRUE 21061
21059: GO 21126
21061: POP
// pom = [ [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; 3 :
21062: LD_ADDR_LOC 23
21066: PUSH
21067: LD_INT 146
21069: PUSH
21070: LD_INT 65
21072: PUSH
21073: EMPTY
21074: LIST
21075: LIST
21076: PUSH
21077: LD_INT 137
21079: PUSH
21080: LD_INT 42
21082: PUSH
21083: EMPTY
21084: LIST
21085: LIST
21086: PUSH
21087: LD_INT 127
21089: PUSH
21090: LD_INT 21
21092: PUSH
21093: EMPTY
21094: LIST
21095: LIST
21096: PUSH
21097: LD_INT 112
21099: PUSH
21100: LD_INT 16
21102: PUSH
21103: EMPTY
21104: LIST
21105: LIST
21106: PUSH
21107: LD_INT 106
21109: PUSH
21110: LD_INT 25
21112: PUSH
21113: EMPTY
21114: LIST
21115: LIST
21116: PUSH
21117: EMPTY
21118: LIST
21119: LIST
21120: LIST
21121: LIST
21122: LIST
21123: ST_TO_ADDR
21124: GO 21127
21126: POP
21127: GO 21924
21129: LD_INT 3
21131: DOUBLE
21132: EQUAL
21133: IFTRUE 21137
21135: GO 21504
21137: POP
// case pomnah of 1 :
21138: LD_LOC 46
21142: PUSH
21143: LD_INT 1
21145: DOUBLE
21146: EQUAL
21147: IFTRUE 21151
21149: GO 21249
21151: POP
// pom = [ [ 71 , 102 ] , [ 57 , 81 ] , [ 66 , 67 ] , [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
21152: LD_ADDR_LOC 23
21156: PUSH
21157: LD_INT 71
21159: PUSH
21160: LD_INT 102
21162: PUSH
21163: EMPTY
21164: LIST
21165: LIST
21166: PUSH
21167: LD_INT 57
21169: PUSH
21170: LD_INT 81
21172: PUSH
21173: EMPTY
21174: LIST
21175: LIST
21176: PUSH
21177: LD_INT 66
21179: PUSH
21180: LD_INT 67
21182: PUSH
21183: EMPTY
21184: LIST
21185: LIST
21186: PUSH
21187: LD_INT 66
21189: PUSH
21190: LD_INT 55
21192: PUSH
21193: EMPTY
21194: LIST
21195: LIST
21196: PUSH
21197: LD_INT 81
21199: PUSH
21200: LD_INT 49
21202: PUSH
21203: EMPTY
21204: LIST
21205: LIST
21206: PUSH
21207: LD_INT 92
21209: PUSH
21210: LD_INT 47
21212: PUSH
21213: EMPTY
21214: LIST
21215: LIST
21216: PUSH
21217: LD_INT 101
21219: PUSH
21220: LD_INT 47
21222: PUSH
21223: EMPTY
21224: LIST
21225: LIST
21226: PUSH
21227: LD_INT 106
21229: PUSH
21230: LD_INT 37
21232: PUSH
21233: EMPTY
21234: LIST
21235: LIST
21236: PUSH
21237: EMPTY
21238: LIST
21239: LIST
21240: LIST
21241: LIST
21242: LIST
21243: LIST
21244: LIST
21245: LIST
21246: ST_TO_ADDR
21247: GO 21502
21249: LD_INT 2
21251: DOUBLE
21252: EQUAL
21253: IFTRUE 21257
21255: GO 21322
21257: POP
// pom = [ [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 :
21258: LD_ADDR_LOC 23
21262: PUSH
21263: LD_INT 78
21265: PUSH
21266: LD_INT 61
21268: PUSH
21269: EMPTY
21270: LIST
21271: LIST
21272: PUSH
21273: LD_INT 78
21275: PUSH
21276: LD_INT 49
21278: PUSH
21279: EMPTY
21280: LIST
21281: LIST
21282: PUSH
21283: LD_INT 90
21285: PUSH
21286: LD_INT 46
21288: PUSH
21289: EMPTY
21290: LIST
21291: LIST
21292: PUSH
21293: LD_INT 103
21295: PUSH
21296: LD_INT 45
21298: PUSH
21299: EMPTY
21300: LIST
21301: LIST
21302: PUSH
21303: LD_INT 108
21305: PUSH
21306: LD_INT 35
21308: PUSH
21309: EMPTY
21310: LIST
21311: LIST
21312: PUSH
21313: EMPTY
21314: LIST
21315: LIST
21316: LIST
21317: LIST
21318: LIST
21319: ST_TO_ADDR
21320: GO 21502
21322: LD_INT 3
21324: DOUBLE
21325: EQUAL
21326: IFTRUE 21330
21328: GO 21406
21330: POP
// pom = [ [ 121 , 82 ] , [ 143 , 67 ] , [ 143 , 69 ] , [ 122 , 66 ] , [ 116 , 52 ] , [ 107 , 35 ] ] ; 4 :
21331: LD_ADDR_LOC 23
21335: PUSH
21336: LD_INT 121
21338: PUSH
21339: LD_INT 82
21341: PUSH
21342: EMPTY
21343: LIST
21344: LIST
21345: PUSH
21346: LD_INT 143
21348: PUSH
21349: LD_INT 67
21351: PUSH
21352: EMPTY
21353: LIST
21354: LIST
21355: PUSH
21356: LD_INT 143
21358: PUSH
21359: LD_INT 69
21361: PUSH
21362: EMPTY
21363: LIST
21364: LIST
21365: PUSH
21366: LD_INT 122
21368: PUSH
21369: LD_INT 66
21371: PUSH
21372: EMPTY
21373: LIST
21374: LIST
21375: PUSH
21376: LD_INT 116
21378: PUSH
21379: LD_INT 52
21381: PUSH
21382: EMPTY
21383: LIST
21384: LIST
21385: PUSH
21386: LD_INT 107
21388: PUSH
21389: LD_INT 35
21391: PUSH
21392: EMPTY
21393: LIST
21394: LIST
21395: PUSH
21396: EMPTY
21397: LIST
21398: LIST
21399: LIST
21400: LIST
21401: LIST
21402: LIST
21403: ST_TO_ADDR
21404: GO 21502
21406: LD_INT 4
21408: DOUBLE
21409: EQUAL
21410: IFTRUE 21414
21412: GO 21501
21414: POP
// pom = [ [ 121 , 82 ] , [ 143 , 67 ] , [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; 4 :
21415: LD_ADDR_LOC 23
21419: PUSH
21420: LD_INT 121
21422: PUSH
21423: LD_INT 82
21425: PUSH
21426: EMPTY
21427: LIST
21428: LIST
21429: PUSH
21430: LD_INT 143
21432: PUSH
21433: LD_INT 67
21435: PUSH
21436: EMPTY
21437: LIST
21438: LIST
21439: PUSH
21440: LD_INT 146
21442: PUSH
21443: LD_INT 65
21445: PUSH
21446: EMPTY
21447: LIST
21448: LIST
21449: PUSH
21450: LD_INT 137
21452: PUSH
21453: LD_INT 42
21455: PUSH
21456: EMPTY
21457: LIST
21458: LIST
21459: PUSH
21460: LD_INT 127
21462: PUSH
21463: LD_INT 21
21465: PUSH
21466: EMPTY
21467: LIST
21468: LIST
21469: PUSH
21470: LD_INT 112
21472: PUSH
21473: LD_INT 16
21475: PUSH
21476: EMPTY
21477: LIST
21478: LIST
21479: PUSH
21480: LD_INT 106
21482: PUSH
21483: LD_INT 25
21485: PUSH
21486: EMPTY
21487: LIST
21488: LIST
21489: PUSH
21490: EMPTY
21491: LIST
21492: LIST
21493: LIST
21494: LIST
21495: LIST
21496: LIST
21497: LIST
21498: ST_TO_ADDR
21499: GO 21502
21501: POP
21502: GO 21924
21504: LD_INT 4
21506: DOUBLE
21507: EQUAL
21508: IFTRUE 21512
21510: GO 21923
21512: POP
// case pomnah of 1 :
21513: LD_LOC 46
21517: PUSH
21518: LD_INT 1
21520: DOUBLE
21521: EQUAL
21522: IFTRUE 21526
21524: GO 21591
21526: POP
// pom = [ [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
21527: LD_ADDR_LOC 23
21531: PUSH
21532: LD_INT 66
21534: PUSH
21535: LD_INT 55
21537: PUSH
21538: EMPTY
21539: LIST
21540: LIST
21541: PUSH
21542: LD_INT 81
21544: PUSH
21545: LD_INT 49
21547: PUSH
21548: EMPTY
21549: LIST
21550: LIST
21551: PUSH
21552: LD_INT 92
21554: PUSH
21555: LD_INT 47
21557: PUSH
21558: EMPTY
21559: LIST
21560: LIST
21561: PUSH
21562: LD_INT 101
21564: PUSH
21565: LD_INT 47
21567: PUSH
21568: EMPTY
21569: LIST
21570: LIST
21571: PUSH
21572: LD_INT 106
21574: PUSH
21575: LD_INT 37
21577: PUSH
21578: EMPTY
21579: LIST
21580: LIST
21581: PUSH
21582: EMPTY
21583: LIST
21584: LIST
21585: LIST
21586: LIST
21587: LIST
21588: ST_TO_ADDR
21589: GO 21921
21591: LD_INT 2
21593: DOUBLE
21594: EQUAL
21595: IFTRUE 21599
21597: GO 21686
21599: POP
// pom = [ [ 70 , 99 ] , [ 97 , 94 ] , [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 :
21600: LD_ADDR_LOC 23
21604: PUSH
21605: LD_INT 70
21607: PUSH
21608: LD_INT 99
21610: PUSH
21611: EMPTY
21612: LIST
21613: LIST
21614: PUSH
21615: LD_INT 97
21617: PUSH
21618: LD_INT 94
21620: PUSH
21621: EMPTY
21622: LIST
21623: LIST
21624: PUSH
21625: LD_INT 78
21627: PUSH
21628: LD_INT 61
21630: PUSH
21631: EMPTY
21632: LIST
21633: LIST
21634: PUSH
21635: LD_INT 78
21637: PUSH
21638: LD_INT 49
21640: PUSH
21641: EMPTY
21642: LIST
21643: LIST
21644: PUSH
21645: LD_INT 90
21647: PUSH
21648: LD_INT 46
21650: PUSH
21651: EMPTY
21652: LIST
21653: LIST
21654: PUSH
21655: LD_INT 103
21657: PUSH
21658: LD_INT 45
21660: PUSH
21661: EMPTY
21662: LIST
21663: LIST
21664: PUSH
21665: LD_INT 108
21667: PUSH
21668: LD_INT 35
21670: PUSH
21671: EMPTY
21672: LIST
21673: LIST
21674: PUSH
21675: EMPTY
21676: LIST
21677: LIST
21678: LIST
21679: LIST
21680: LIST
21681: LIST
21682: LIST
21683: ST_TO_ADDR
21684: GO 21921
21686: LD_INT 3
21688: DOUBLE
21689: EQUAL
21690: IFTRUE 21694
21692: GO 21792
21694: POP
// pom = [ [ 74 , 99 ] , [ 107 , 95 ] , [ 126 , 79 ] , [ 142 , 73 ] , [ 144 , 68 ] , [ 122 , 66 ] , [ 116 , 52 ] , [ 107 , 35 ] ] ; 4 :
21695: LD_ADDR_LOC 23
21699: PUSH
21700: LD_INT 74
21702: PUSH
21703: LD_INT 99
21705: PUSH
21706: EMPTY
21707: LIST
21708: LIST
21709: PUSH
21710: LD_INT 107
21712: PUSH
21713: LD_INT 95
21715: PUSH
21716: EMPTY
21717: LIST
21718: LIST
21719: PUSH
21720: LD_INT 126
21722: PUSH
21723: LD_INT 79
21725: PUSH
21726: EMPTY
21727: LIST
21728: LIST
21729: PUSH
21730: LD_INT 142
21732: PUSH
21733: LD_INT 73
21735: PUSH
21736: EMPTY
21737: LIST
21738: LIST
21739: PUSH
21740: LD_INT 144
21742: PUSH
21743: LD_INT 68
21745: PUSH
21746: EMPTY
21747: LIST
21748: LIST
21749: PUSH
21750: LD_INT 122
21752: PUSH
21753: LD_INT 66
21755: PUSH
21756: EMPTY
21757: LIST
21758: LIST
21759: PUSH
21760: LD_INT 116
21762: PUSH
21763: LD_INT 52
21765: PUSH
21766: EMPTY
21767: LIST
21768: LIST
21769: PUSH
21770: LD_INT 107
21772: PUSH
21773: LD_INT 35
21775: PUSH
21776: EMPTY
21777: LIST
21778: LIST
21779: PUSH
21780: EMPTY
21781: LIST
21782: LIST
21783: LIST
21784: LIST
21785: LIST
21786: LIST
21787: LIST
21788: LIST
21789: ST_TO_ADDR
21790: GO 21921
21792: LD_INT 4
21794: DOUBLE
21795: EQUAL
21796: IFTRUE 21800
21798: GO 21920
21800: POP
// pom = [ [ 74 , 99 ] , [ 107 , 95 ] , [ 126 , 79 ] , [ 142 , 73 ] , [ 144 , 68 ] , [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; end ;
21801: LD_ADDR_LOC 23
21805: PUSH
21806: LD_INT 74
21808: PUSH
21809: LD_INT 99
21811: PUSH
21812: EMPTY
21813: LIST
21814: LIST
21815: PUSH
21816: LD_INT 107
21818: PUSH
21819: LD_INT 95
21821: PUSH
21822: EMPTY
21823: LIST
21824: LIST
21825: PUSH
21826: LD_INT 126
21828: PUSH
21829: LD_INT 79
21831: PUSH
21832: EMPTY
21833: LIST
21834: LIST
21835: PUSH
21836: LD_INT 142
21838: PUSH
21839: LD_INT 73
21841: PUSH
21842: EMPTY
21843: LIST
21844: LIST
21845: PUSH
21846: LD_INT 144
21848: PUSH
21849: LD_INT 68
21851: PUSH
21852: EMPTY
21853: LIST
21854: LIST
21855: PUSH
21856: LD_INT 146
21858: PUSH
21859: LD_INT 65
21861: PUSH
21862: EMPTY
21863: LIST
21864: LIST
21865: PUSH
21866: LD_INT 137
21868: PUSH
21869: LD_INT 42
21871: PUSH
21872: EMPTY
21873: LIST
21874: LIST
21875: PUSH
21876: LD_INT 127
21878: PUSH
21879: LD_INT 21
21881: PUSH
21882: EMPTY
21883: LIST
21884: LIST
21885: PUSH
21886: LD_INT 112
21888: PUSH
21889: LD_INT 16
21891: PUSH
21892: EMPTY
21893: LIST
21894: LIST
21895: PUSH
21896: LD_INT 106
21898: PUSH
21899: LD_INT 25
21901: PUSH
21902: EMPTY
21903: LIST
21904: LIST
21905: PUSH
21906: EMPTY
21907: LIST
21908: LIST
21909: LIST
21910: LIST
21911: LIST
21912: LIST
21913: LIST
21914: LIST
21915: LIST
21916: LIST
21917: ST_TO_ADDR
21918: GO 21921
21920: POP
21921: GO 21924
21923: POP
// result := pom ;
21924: LD_ADDR_VAR 0 1
21928: PUSH
21929: LD_LOC 23
21933: ST_TO_ADDR
// end ;
21934: LD_VAR 0 1
21938: RET
// every 0 0$1 do var zona ;
21939: GO 21941
21941: DISABLE
21942: LD_INT 0
21944: PPUSH
// begin case nah of 1 , 2 :
21945: LD_EXP 33
21949: PUSH
21950: LD_INT 1
21952: DOUBLE
21953: EQUAL
21954: IFTRUE 21964
21956: LD_INT 2
21958: DOUBLE
21959: EQUAL
21960: IFTRUE 21964
21962: GO 21975
21964: POP
// zona = RZ1 ; 3 :
21965: LD_ADDR_VAR 0 1
21969: PUSH
21970: LD_INT 8
21972: ST_TO_ADDR
21973: GO 22014
21975: LD_INT 3
21977: DOUBLE
21978: EQUAL
21979: IFTRUE 21983
21981: GO 21994
21983: POP
// zona = RZ2 ; 4 :
21984: LD_ADDR_VAR 0 1
21988: PUSH
21989: LD_INT 9
21991: ST_TO_ADDR
21992: GO 22014
21994: LD_INT 4
21996: DOUBLE
21997: EQUAL
21998: IFTRUE 22002
22000: GO 22013
22002: POP
// zona = RZ3 ; end ;
22003: LD_ADDR_VAR 0 1
22007: PUSH
22008: LD_INT 10
22010: ST_TO_ADDR
22011: GO 22014
22013: POP
// if FilterUnitsInArea ( zona , [ [ f_side , Rusi ] , [ f_control , control_computer ] ] ) > 1 then
22014: LD_VAR 0 1
22018: PPUSH
22019: LD_INT 22
22021: PUSH
22022: LD_EXP 2
22026: PUSH
22027: EMPTY
22028: LIST
22029: LIST
22030: PUSH
22031: LD_INT 33
22033: PUSH
22034: LD_INT 3
22036: PUSH
22037: EMPTY
22038: LIST
22039: LIST
22040: PUSH
22041: EMPTY
22042: LIST
22043: LIST
22044: PPUSH
22045: CALL_OW 70
22049: PUSH
22050: LD_INT 1
22052: GREATER
22053: IFFALSE 22067
// begin wait ( 0 0$45 ) ;
22055: LD_INT 1575
22057: PPUSH
22058: CALL_OW 67
// enable ( 244 ) ;
22062: LD_INT 244
22064: ENABLE_MARKED
// end else
22065: GO 22068
// enable ;
22067: ENABLE
// end ;
22068: PPOPN 1
22070: END
// every 1 1$0 marked 244 do
22071: GO 22073
22073: DISABLE
// begin wait ( Rand ( 1 , kutoku [ difficulty ] ) ) ;
22074: LD_INT 1
22076: PPUSH
22077: LD_EXP 65
22081: PUSH
22082: LD_OWVAR 67
22086: ARRAY
22087: PPUSH
22088: CALL_OW 12
22092: PPUSH
22093: CALL_OW 67
// cheat_source ( R_depot , 300 , 150 , 70 ) ;
22097: LD_LOC 28
22101: PPUSH
22102: LD_INT 300
22104: PPUSH
22105: LD_INT 150
22107: PPUSH
22108: LD_INT 70
22110: PPUSH
22111: CALL 13869 0 4
// if Prob ( 50 ) then
22115: LD_INT 50
22117: PPUSH
22118: CALL_OW 13
22122: IFFALSE 22150
// nahodne_tanku := Rand ( 0 , ntanku [ difficulty ] ) else
22124: LD_ADDR_LOC 47
22128: PUSH
22129: LD_INT 0
22131: PPUSH
22132: LD_EXP 66
22136: PUSH
22137: LD_OWVAR 67
22141: ARRAY
22142: PPUSH
22143: CALL_OW 12
22147: ST_TO_ADDR
22148: GO 22158
// nahodne_tanku := 0 ;
22150: LD_ADDR_LOC 47
22154: PUSH
22155: LD_INT 0
22157: ST_TO_ADDR
// if Prob ( 33 ) then
22158: LD_INT 33
22160: PPUSH
22161: CALL_OW 13
22165: IFFALSE 22177
// vojaci := true else
22167: LD_ADDR_LOC 48
22171: PUSH
22172: LD_INT 1
22174: ST_TO_ADDR
22175: GO 22185
// vojaci = false ;
22177: LD_ADDR_LOC 48
22181: PUSH
22182: LD_INT 0
22184: ST_TO_ADDR
// for i := 1 to pocaut [ difficulty ] + nahodne_tanku do
22185: LD_ADDR_LOC 22
22189: PUSH
22190: DOUBLE
22191: LD_INT 1
22193: DEC
22194: ST_TO_ADDR
22195: LD_EXP 63
22199: PUSH
22200: LD_OWVAR 67
22204: ARRAY
22205: PUSH
22206: LD_LOC 47
22210: PLUS
22211: PUSH
22212: FOR_TO
22213: IFFALSE 22246
// begin AddComConstruct ( R_factory , ru_heavy_tracked , engine_siberite , control_computer , zbranrusi [ difficulty ] ) ;
22215: LD_LOC 31
22219: PPUSH
22220: LD_INT 24
22222: PPUSH
22223: LD_INT 3
22225: PPUSH
22226: LD_INT 3
22228: PPUSH
22229: LD_EXP 61
22233: PUSH
22234: LD_OWVAR 67
22238: ARRAY
22239: PPUSH
22240: CALL_OW 185
// end ;
22244: GO 22212
22246: POP
22247: POP
// enable ( 245 ) ;
22248: LD_INT 245
22250: ENABLE_MARKED
// disable_me ( 244 ) ;
22251: LD_INT 244
22253: PPUSH
22254: CALL 22719 0 1
// enable ;
22258: ENABLE
// end ;
22259: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = pocaut [ difficulty ] + nahodne_tanku marked 245 do
22260: LD_INT 22
22262: PUSH
22263: LD_EXP 2
22267: PUSH
22268: EMPTY
22269: LIST
22270: LIST
22271: PUSH
22272: LD_INT 1
22274: PUSH
22275: EMPTY
22276: LIST
22277: PUSH
22278: LD_INT 33
22280: PUSH
22281: LD_INT 3
22283: PUSH
22284: EMPTY
22285: LIST
22286: LIST
22287: PUSH
22288: EMPTY
22289: LIST
22290: LIST
22291: LIST
22292: PPUSH
22293: CALL_OW 69
22297: PUSH
22298: LD_EXP 63
22302: PUSH
22303: LD_OWVAR 67
22307: ARRAY
22308: PUSH
22309: LD_LOC 47
22313: PLUS
22314: EQUAL
22315: IFFALSE 22660
22317: GO 22319
22319: DISABLE
// begin UTOK := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
22320: LD_ADDR_LOC 44
22324: PUSH
22325: LD_INT 22
22327: PUSH
22328: LD_EXP 2
22332: PUSH
22333: EMPTY
22334: LIST
22335: LIST
22336: PUSH
22337: LD_INT 1
22339: PUSH
22340: EMPTY
22341: LIST
22342: PUSH
22343: LD_INT 33
22345: PUSH
22346: LD_INT 3
22348: PUSH
22349: EMPTY
22350: LIST
22351: LIST
22352: PUSH
22353: EMPTY
22354: LIST
22355: LIST
22356: LIST
22357: PPUSH
22358: CALL_OW 69
22362: ST_TO_ADDR
// atway := GetAttackWay ;
22363: LD_ADDR_LOC 45
22367: PUSH
22368: CALL 20791 0 0
22372: ST_TO_ADDR
// for i in atway do
22373: LD_ADDR_LOC 22
22377: PUSH
22378: LD_LOC 45
22382: PUSH
22383: FOR_IN
22384: IFFALSE 22415
// AddComAgressiveMove ( UTOK , i [ 1 ] , i [ 2 ] ) ;
22386: LD_LOC 44
22390: PPUSH
22391: LD_LOC 22
22395: PUSH
22396: LD_INT 1
22398: ARRAY
22399: PPUSH
22400: LD_LOC 22
22404: PUSH
22405: LD_INT 2
22407: ARRAY
22408: PPUSH
22409: CALL_OW 174
22413: GO 22383
22415: POP
22416: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
22417: LD_ADDR_LOC 23
22421: PUSH
22422: LD_INT 22
22424: PUSH
22425: LD_EXP 3
22429: PUSH
22430: EMPTY
22431: LIST
22432: LIST
22433: PUSH
22434: LD_INT 1
22436: PUSH
22437: EMPTY
22438: LIST
22439: PUSH
22440: LD_INT 21
22442: PUSH
22443: LD_INT 3
22445: PUSH
22446: EMPTY
22447: LIST
22448: LIST
22449: PUSH
22450: EMPTY
22451: LIST
22452: LIST
22453: LIST
22454: PPUSH
22455: CALL_OW 69
22459: ST_TO_ADDR
// if pom > 0 then
22460: LD_LOC 23
22464: PUSH
22465: LD_INT 0
22467: GREATER
22468: IFFALSE 22507
// AddComAgressiveMove ( UTOK , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
22470: LD_LOC 44
22474: PPUSH
22475: LD_LOC 23
22479: PUSH
22480: LD_INT 1
22482: ARRAY
22483: PPUSH
22484: CALL_OW 250
22488: PPUSH
22489: LD_LOC 23
22493: PUSH
22494: LD_INT 1
22496: ARRAY
22497: PPUSH
22498: CALL_OW 251
22502: PPUSH
22503: CALL_OW 174
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
22507: LD_ADDR_LOC 23
22511: PUSH
22512: LD_INT 22
22514: PUSH
22515: LD_EXP 3
22519: PUSH
22520: EMPTY
22521: LIST
22522: LIST
22523: PUSH
22524: LD_INT 2
22526: PUSH
22527: LD_INT 21
22529: PUSH
22530: LD_INT 1
22532: PUSH
22533: EMPTY
22534: LIST
22535: LIST
22536: PUSH
22537: LD_INT 21
22539: PUSH
22540: LD_INT 2
22542: PUSH
22543: EMPTY
22544: LIST
22545: LIST
22546: PUSH
22547: EMPTY
22548: LIST
22549: LIST
22550: LIST
22551: PUSH
22552: EMPTY
22553: LIST
22554: LIST
22555: PPUSH
22556: CALL_OW 69
22560: ST_TO_ADDR
// if pom > 0 then
22561: LD_LOC 23
22565: PUSH
22566: LD_INT 0
22568: GREATER
22569: IFFALSE 22632
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
22571: LD_LOC 44
22575: PPUSH
22576: LD_LOC 23
22580: PUSH
22581: LD_INT 1
22583: ARRAY
22584: PPUSH
22585: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
22589: LD_LOC 44
22593: PPUSH
22594: LD_EXP 40
22598: PPUSH
22599: CALL_OW 250
22603: PPUSH
22604: LD_EXP 40
22608: PPUSH
22609: CALL_OW 251
22613: PPUSH
22614: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
22618: LD_LOC 44
22622: PPUSH
22623: LD_EXP 40
22627: PPUSH
22628: CALL_OW 175
// end ; disable_me ( 245 ) ;
22632: LD_INT 245
22634: PPUSH
22635: CALL 22719 0 1
// enable ( 246 ) ;
22639: LD_INT 246
22641: ENABLE_MARKED
// enable ( 247 ) ;
22642: LD_INT 247
22644: ENABLE_MARKED
// PRU_ATTACK := PRU_ATTACK + 1 ;
22645: LD_ADDR_EXP 35
22649: PUSH
22650: LD_EXP 35
22654: PUSH
22655: LD_INT 1
22657: PLUS
22658: ST_TO_ADDR
// enable ;
22659: ENABLE
// end ;
22660: END
// every 0 0$6 marked 246 do
22661: GO 22663
22663: DISABLE
// begin if FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = 0 then
22664: LD_INT 22
22666: PUSH
22667: LD_EXP 2
22671: PUSH
22672: EMPTY
22673: LIST
22674: LIST
22675: PUSH
22676: LD_INT 1
22678: PUSH
22679: EMPTY
22680: LIST
22681: PUSH
22682: LD_INT 33
22684: PUSH
22685: LD_INT 3
22687: PUSH
22688: EMPTY
22689: LIST
22690: LIST
22691: PUSH
22692: EMPTY
22693: LIST
22694: LIST
22695: LIST
22696: PPUSH
22697: CALL_OW 69
22701: PUSH
22702: LD_INT 0
22704: EQUAL
22705: IFFALSE 22717
// begin enable ( 244 ) ;
22707: LD_INT 244
22709: ENABLE_MARKED
// disable_me ( 246 ) ;
22710: LD_INT 246
22712: PPUSH
22713: CALL 22719 0 1
// end ; enable ;
22717: ENABLE
// end ;
22718: END
// function disable_me ( ct ) ; begin
22719: LD_INT 0
22721: PPUSH
// wait ( 0 0$1 ) ;
22722: LD_INT 35
22724: PPUSH
22725: CALL_OW 67
// disable ( ct ) ;
22729: LD_VAR 0 1
22733: DISABLE_MARKED
// end ;
22734: LD_VAR 0 2
22738: RET
// every 0 0$3 marked 247 do var i ;
22739: GO 22741
22741: DISABLE
22742: LD_INT 0
22744: PPUSH
// begin if vojaci then
22745: LD_LOC 48
22749: IFFALSE 23168
// begin for i in CREATE_VOJACI_LIST do
22751: LD_ADDR_VAR 0 1
22755: PUSH
22756: LD_EXP 13
22760: PUSH
22761: FOR_IN
22762: IFFALSE 22781
// PlaceUnitArea ( i , RUEV , false ) ;
22764: LD_VAR 0 1
22768: PPUSH
22769: LD_INT 19
22771: PPUSH
22772: LD_INT 0
22774: PPUSH
22775: CALL_OW 49
22779: GO 22761
22781: POP
22782: POP
// VOJUTOK = FilterUnitsInArea ( RUEV , [ [ f_side , Rusi ] ] ) ;
22783: LD_ADDR_LOC 19
22787: PUSH
22788: LD_INT 19
22790: PPUSH
22791: LD_INT 22
22793: PUSH
22794: LD_EXP 2
22798: PUSH
22799: EMPTY
22800: LIST
22801: LIST
22802: PUSH
22803: EMPTY
22804: LIST
22805: PPUSH
22806: CALL_OW 70
22810: ST_TO_ADDR
// AddComAgressiveMove ( VOJUTOK , 122 , 40 ) ;
22811: LD_LOC 19
22815: PPUSH
22816: LD_INT 122
22818: PPUSH
22819: LD_INT 40
22821: PPUSH
22822: CALL_OW 174
// for i in VOJUTOK do
22826: LD_ADDR_VAR 0 1
22830: PUSH
22831: LD_LOC 19
22835: PUSH
22836: FOR_IN
22837: IFFALSE 22922
// begin AddComSpaceShift ( i , 109 , 40 ) ;
22839: LD_VAR 0 1
22843: PPUSH
22844: LD_INT 109
22846: PPUSH
22847: LD_INT 40
22849: PPUSH
22850: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
22854: LD_VAR 0 1
22858: PPUSH
22859: LD_INT 666
22861: PPUSH
22862: CALL_OW 224
// AddComTimeShift ( i , 107 , 41 ) ;
22866: LD_VAR 0 1
22870: PPUSH
22871: LD_INT 107
22873: PPUSH
22874: LD_INT 41
22876: PPUSH
22877: CALL_OW 214
// AddComSailEvent ( i , 666 ) ;
22881: LD_VAR 0 1
22885: PPUSH
22886: LD_INT 666
22888: PPUSH
22889: CALL_OW 224
// AddComSpaceShift ( i , 110 , 30 ) ;
22893: LD_VAR 0 1
22897: PPUSH
22898: LD_INT 110
22900: PPUSH
22901: LD_INT 30
22903: PPUSH
22904: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
22908: LD_VAR 0 1
22912: PPUSH
22913: LD_INT 666
22915: PPUSH
22916: CALL_OW 224
// end ;
22920: GO 22836
22922: POP
22923: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
22924: LD_ADDR_LOC 23
22928: PUSH
22929: LD_INT 22
22931: PUSH
22932: LD_EXP 3
22936: PUSH
22937: EMPTY
22938: LIST
22939: LIST
22940: PUSH
22941: LD_INT 1
22943: PUSH
22944: EMPTY
22945: LIST
22946: PUSH
22947: LD_INT 21
22949: PUSH
22950: LD_INT 3
22952: PUSH
22953: EMPTY
22954: LIST
22955: LIST
22956: PUSH
22957: EMPTY
22958: LIST
22959: LIST
22960: LIST
22961: PPUSH
22962: CALL_OW 69
22966: ST_TO_ADDR
// if pom > 0 then
22967: LD_LOC 23
22971: PUSH
22972: LD_INT 0
22974: GREATER
22975: IFFALSE 23043
// for i in VOJUTOK do
22977: LD_ADDR_VAR 0 1
22981: PUSH
22982: LD_LOC 19
22986: PUSH
22987: FOR_IN
22988: IFFALSE 23041
// begin AddComSpaceShift ( i , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
22990: LD_VAR 0 1
22994: PPUSH
22995: LD_LOC 23
22999: PUSH
23000: LD_INT 1
23002: ARRAY
23003: PPUSH
23004: CALL_OW 250
23008: PPUSH
23009: LD_LOC 23
23013: PUSH
23014: LD_INT 1
23016: ARRAY
23017: PPUSH
23018: CALL_OW 251
23022: PPUSH
23023: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
23027: LD_VAR 0 1
23031: PPUSH
23032: LD_INT 666
23034: PPUSH
23035: CALL_OW 224
// end ;
23039: GO 22987
23041: POP
23042: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
23043: LD_ADDR_LOC 23
23047: PUSH
23048: LD_INT 22
23050: PUSH
23051: LD_EXP 3
23055: PUSH
23056: EMPTY
23057: LIST
23058: LIST
23059: PUSH
23060: LD_INT 2
23062: PUSH
23063: LD_INT 21
23065: PUSH
23066: LD_INT 1
23068: PUSH
23069: EMPTY
23070: LIST
23071: LIST
23072: PUSH
23073: LD_INT 21
23075: PUSH
23076: LD_INT 2
23078: PUSH
23079: EMPTY
23080: LIST
23081: LIST
23082: PUSH
23083: EMPTY
23084: LIST
23085: LIST
23086: LIST
23087: PUSH
23088: EMPTY
23089: LIST
23090: LIST
23091: PPUSH
23092: CALL_OW 69
23096: ST_TO_ADDR
// if pom > 0 then
23097: LD_LOC 23
23101: PUSH
23102: LD_INT 0
23104: GREATER
23105: IFFALSE 23168
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
23107: LD_LOC 44
23111: PPUSH
23112: LD_LOC 23
23116: PUSH
23117: LD_INT 1
23119: ARRAY
23120: PPUSH
23121: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
23125: LD_LOC 44
23129: PPUSH
23130: LD_EXP 40
23134: PPUSH
23135: CALL_OW 250
23139: PPUSH
23140: LD_EXP 40
23144: PPUSH
23145: CALL_OW 251
23149: PPUSH
23150: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
23154: LD_LOC 44
23158: PPUSH
23159: LD_EXP 40
23163: PPUSH
23164: CALL_OW 175
// end ; end ; disable_me ( 247 ) ;
23168: LD_INT 247
23170: PPUSH
23171: CALL 22719 0 1
// enable ;
23175: ENABLE
// end ;
23176: PPOPN 1
23178: END
// every 0 0$10 marked 248 do
23179: GO 23181
23181: DISABLE
// begin pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) ;
23182: LD_ADDR_LOC 23
23186: PUSH
23187: LD_INT 22
23189: PUSH
23190: LD_EXP 2
23194: PUSH
23195: EMPTY
23196: LIST
23197: LIST
23198: PUSH
23199: LD_INT 1
23201: PUSH
23202: EMPTY
23203: LIST
23204: PUSH
23205: LD_INT 25
23207: PUSH
23208: LD_INT 2
23210: PUSH
23211: EMPTY
23212: LIST
23213: LIST
23214: PUSH
23215: EMPTY
23216: LIST
23217: LIST
23218: LIST
23219: PPUSH
23220: CALL_OW 69
23224: ST_TO_ADDR
// if pom = 0 then
23225: LD_LOC 23
23229: PUSH
23230: LD_INT 0
23232: EQUAL
23233: IFFALSE 23372
// begin create_engineer ;
23235: CALL 7108 0 0
// pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) ;
23239: LD_ADDR_LOC 23
23243: PUSH
23244: LD_INT 22
23246: PUSH
23247: LD_EXP 2
23251: PUSH
23252: EMPTY
23253: LIST
23254: LIST
23255: PUSH
23256: LD_INT 1
23258: PUSH
23259: EMPTY
23260: LIST
23261: PUSH
23262: LD_INT 25
23264: PUSH
23265: LD_INT 2
23267: PUSH
23268: EMPTY
23269: LIST
23270: LIST
23271: PUSH
23272: EMPTY
23273: LIST
23274: LIST
23275: LIST
23276: PPUSH
23277: CALL_OW 69
23281: ST_TO_ADDR
// case nah of 1 , 2 :
23282: LD_EXP 33
23286: PUSH
23287: LD_INT 1
23289: DOUBLE
23290: EQUAL
23291: IFTRUE 23301
23293: LD_INT 2
23295: DOUBLE
23296: EQUAL
23297: IFTRUE 23301
23299: GO 23319
23301: POP
// ComAgressiveMove ( pom , 145 , 69 ) ; 3 :
23302: LD_LOC 23
23306: PPUSH
23307: LD_INT 145
23309: PPUSH
23310: LD_INT 69
23312: PPUSH
23313: CALL_OW 114
23317: GO 23372
23319: LD_INT 3
23321: DOUBLE
23322: EQUAL
23323: IFTRUE 23327
23325: GO 23345
23327: POP
// ComAgressiveMove ( pom , 52 , 81 ) ; 4 :
23328: LD_LOC 23
23332: PPUSH
23333: LD_INT 52
23335: PPUSH
23336: LD_INT 81
23338: PPUSH
23339: CALL_OW 114
23343: GO 23372
23345: LD_INT 4
23347: DOUBLE
23348: EQUAL
23349: IFTRUE 23353
23351: GO 23371
23353: POP
// ComAgressiveMove ( pom , 93 , 99 ) ; end ;
23354: LD_LOC 23
23358: PPUSH
23359: LD_INT 93
23361: PPUSH
23362: LD_INT 99
23364: PPUSH
23365: CALL_OW 114
23369: GO 23372
23371: POP
// end ; enable ;
23372: ENABLE
// end ;
23373: END
// every 0 0$1 marked 249 do
23374: GO 23376
23376: DISABLE
// begin SetXYS ( nah , 15 ) ;
23377: LD_EXP 33
23381: PPUSH
23382: LD_INT 15
23384: PPUSH
23385: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_siberium , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
23389: LD_LOC 26
23393: PUSH
23394: LD_INT 1
23396: ARRAY
23397: PPUSH
23398: LD_INT 21
23400: PPUSH
23401: LD_LOC 43
23405: PUSH
23406: LD_INT 1
23408: ARRAY
23409: PPUSH
23410: LD_LOC 43
23414: PUSH
23415: LD_INT 2
23417: ARRAY
23418: PPUSH
23419: LD_LOC 43
23423: PUSH
23424: LD_INT 3
23426: ARRAY
23427: PPUSH
23428: CALL_OW 205
// wait ( 0 0$5 ) ;
23432: LD_INT 175
23434: PPUSH
23435: CALL_OW 67
// enable ( 250 ) ;
23439: LD_INT 250
23441: ENABLE_MARKED
// end ;
23442: END
// every 0 0$5 marked 250 do
23443: GO 23445
23445: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_siberium ] ] ) ;
23446: LD_ADDR_LOC 23
23450: PUSH
23451: LD_LOC 21
23455: PPUSH
23456: LD_INT 22
23458: PUSH
23459: LD_EXP 2
23463: PUSH
23464: EMPTY
23465: LIST
23466: LIST
23467: PUSH
23468: LD_INT 1
23470: PUSH
23471: EMPTY
23472: LIST
23473: PUSH
23474: LD_INT 30
23476: PUSH
23477: LD_INT 21
23479: PUSH
23480: EMPTY
23481: LIST
23482: LIST
23483: PUSH
23484: EMPTY
23485: LIST
23486: LIST
23487: LIST
23488: PPUSH
23489: CALL_OW 70
23493: ST_TO_ADDR
// if pom = 0 then
23494: LD_LOC 23
23498: PUSH
23499: LD_INT 0
23501: EQUAL
23502: IFFALSE 23562
// begin SetXYS ( nah , 15 ) ;
23504: LD_EXP 33
23508: PPUSH
23509: LD_INT 15
23511: PPUSH
23512: CALL 18192 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
23516: LD_LOC 26
23520: PUSH
23521: LD_INT 1
23523: ARRAY
23524: PPUSH
23525: LD_INT 24
23527: PPUSH
23528: LD_LOC 43
23532: PUSH
23533: LD_INT 1
23535: ARRAY
23536: PPUSH
23537: LD_LOC 43
23541: PUSH
23542: LD_INT 2
23544: ARRAY
23545: PPUSH
23546: LD_LOC 43
23550: PUSH
23551: LD_INT 3
23553: ARRAY
23554: PPUSH
23555: CALL_OW 205
// enable ;
23559: ENABLE
// end else
23560: GO 23576
// R_esib = pom [ 1 ] ;
23562: LD_ADDR_LOC 41
23566: PUSH
23567: LD_LOC 23
23571: PUSH
23572: LD_INT 1
23574: ARRAY
23575: ST_TO_ADDR
// end ;
23576: END
// every 0 0$9 do
23577: GO 23579
23579: DISABLE
// begin pom = FilterUnitsInArea ( Base2 , [ [ f_side , Rusi ] ] ) ;
23580: LD_ADDR_LOC 23
23584: PUSH
23585: LD_INT 13
23587: PPUSH
23588: LD_INT 22
23590: PUSH
23591: LD_EXP 2
23595: PUSH
23596: EMPTY
23597: LIST
23598: LIST
23599: PUSH
23600: EMPTY
23601: LIST
23602: PPUSH
23603: CALL_OW 70
23607: ST_TO_ADDR
// for i in pom do
23608: LD_ADDR_LOC 22
23612: PUSH
23613: LD_LOC 23
23617: PUSH
23618: FOR_IN
23619: IFFALSE 23677
// if IsIdle ( i ) then
23621: LD_LOC 22
23625: PPUSH
23626: CALL_OW 316
23630: IFFALSE 23675
// begin pom1 = FilterAllUnits ( [ [ f_side , You ] ] ) ;
23632: LD_ADDR_LOC 24
23636: PUSH
23637: LD_INT 22
23639: PUSH
23640: LD_EXP 3
23644: PUSH
23645: EMPTY
23646: LIST
23647: LIST
23648: PUSH
23649: EMPTY
23650: LIST
23651: PPUSH
23652: CALL_OW 69
23656: ST_TO_ADDR
// ComAttackUnit ( i , pom1 [ 1 ] ) ;
23657: LD_LOC 22
23661: PPUSH
23662: LD_LOC 24
23666: PUSH
23667: LD_INT 1
23669: ARRAY
23670: PPUSH
23671: CALL_OW 115
// end ;
23675: GO 23618
23677: POP
23678: POP
// enable ;
23679: ENABLE
// end ;
23680: END
// every 0 0$6 do
23681: GO 23683
23683: DISABLE
// begin pom = FilterUnitsInArea ( Base2 , [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
23684: LD_ADDR_LOC 23
23688: PUSH
23689: LD_INT 13
23691: PPUSH
23692: LD_INT 22
23694: PUSH
23695: LD_EXP 2
23699: PUSH
23700: EMPTY
23701: LIST
23702: LIST
23703: PUSH
23704: LD_INT 1
23706: PUSH
23707: EMPTY
23708: LIST
23709: PUSH
23710: LD_INT 33
23712: PUSH
23713: LD_INT 3
23715: PUSH
23716: EMPTY
23717: LIST
23718: LIST
23719: PUSH
23720: EMPTY
23721: LIST
23722: LIST
23723: LIST
23724: PPUSH
23725: CALL_OW 70
23729: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] ] ) ;
23730: LD_ADDR_LOC 24
23734: PUSH
23735: LD_INT 22
23737: PUSH
23738: LD_EXP 3
23742: PUSH
23743: EMPTY
23744: LIST
23745: LIST
23746: PUSH
23747: EMPTY
23748: LIST
23749: PPUSH
23750: CALL_OW 69
23754: ST_TO_ADDR
// for i in pom do
23755: LD_ADDR_LOC 22
23759: PUSH
23760: LD_LOC 23
23764: PUSH
23765: FOR_IN
23766: IFFALSE 23809
// if IsIdle ( i ) then
23768: LD_LOC 22
23772: PPUSH
23773: CALL_OW 316
23777: IFFALSE 23807
// ComAttackUnit ( i , pom1 [ Rand ( 1 , pom1 ) ] ) ;
23779: LD_LOC 22
23783: PPUSH
23784: LD_LOC 24
23788: PUSH
23789: LD_INT 1
23791: PPUSH
23792: LD_LOC 24
23796: PPUSH
23797: CALL_OW 12
23801: ARRAY
23802: PPUSH
23803: CALL_OW 115
23807: GO 23765
23809: POP
23810: POP
// enable ;
23811: ENABLE
// end ;
23812: END
// every 0 0$34 trigger EMR do var pom ;
23813: LD_EXP 36
23817: IFFALSE 24616
23819: GO 23821
23821: DISABLE
23822: LD_INT 0
23824: PPUSH
// begin for i in RUSSIAN_AFTER_END_ATTACK_LIST1 do
23825: LD_ADDR_LOC 22
23829: PUSH
23830: LD_EXP 18
23834: PUSH
23835: FOR_IN
23836: IFFALSE 23855
// PlaceUnitArea ( i , EnterAM , false ) ;
23838: LD_LOC 22
23842: PPUSH
23843: LD_INT 3
23845: PPUSH
23846: LD_INT 0
23848: PPUSH
23849: CALL_OW 49
23853: GO 23835
23855: POP
23856: POP
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST1 , [ [ 43 , 48 ] , [ 69 , 49 ] , [ 92 , 43 ] , [ 105 , 37 ] ] , [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ) ;
23857: LD_INT 1
23859: PPUSH
23860: LD_EXP 18
23864: PPUSH
23865: LD_INT 43
23867: PUSH
23868: LD_INT 48
23870: PUSH
23871: EMPTY
23872: LIST
23873: LIST
23874: PUSH
23875: LD_INT 69
23877: PUSH
23878: LD_INT 49
23880: PUSH
23881: EMPTY
23882: LIST
23883: LIST
23884: PUSH
23885: LD_INT 92
23887: PUSH
23888: LD_INT 43
23890: PUSH
23891: EMPTY
23892: LIST
23893: LIST
23894: PUSH
23895: LD_INT 105
23897: PUSH
23898: LD_INT 37
23900: PUSH
23901: EMPTY
23902: LIST
23903: LIST
23904: PUSH
23905: EMPTY
23906: LIST
23907: LIST
23908: LIST
23909: LIST
23910: PPUSH
23911: LD_INT 3
23913: PUSH
23914: LD_INT 6
23916: PUSH
23917: LD_INT 5
23919: PUSH
23920: EMPTY
23921: LIST
23922: LIST
23923: LIST
23924: PPUSH
23925: CALL_OW 398
// wait ( timerusi [ difficulty ] ) ;
23929: LD_EXP 58
23933: PUSH
23934: LD_OWVAR 67
23938: ARRAY
23939: PPUSH
23940: CALL_OW 67
// for i in RUSSIAN_AFTER_END_ATTACK_LIST2 do
23944: LD_ADDR_LOC 22
23948: PUSH
23949: LD_EXP 19
23953: PUSH
23954: FOR_IN
23955: IFFALSE 24001
// if nah <> 4 then
23957: LD_EXP 33
23961: PUSH
23962: LD_INT 4
23964: NONEQUAL
23965: IFFALSE 23984
// PlaceUnitArea ( i , RE2 , false ) else
23967: LD_LOC 22
23971: PPUSH
23972: LD_INT 5
23974: PPUSH
23975: LD_INT 0
23977: PPUSH
23978: CALL_OW 49
23982: GO 23999
// PlaceUnitArea ( i , REME , false ) ;
23984: LD_LOC 22
23988: PPUSH
23989: LD_INT 30
23991: PPUSH
23992: LD_INT 0
23994: PPUSH
23995: CALL_OW 49
23999: GO 23954
24001: POP
24002: POP
// if nah <> 4 then
24003: LD_EXP 33
24007: PUSH
24008: LD_INT 4
24010: NONEQUAL
24011: IFFALSE 24101
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST2 , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
24013: LD_INT 1
24015: PPUSH
24016: LD_EXP 19
24020: PPUSH
24021: LD_INT 95
24023: PUSH
24024: LD_INT 93
24026: PUSH
24027: EMPTY
24028: LIST
24029: LIST
24030: PUSH
24031: LD_INT 80
24033: PUSH
24034: LD_INT 64
24036: PUSH
24037: EMPTY
24038: LIST
24039: LIST
24040: PUSH
24041: LD_INT 77
24043: PUSH
24044: LD_INT 45
24046: PUSH
24047: EMPTY
24048: LIST
24049: LIST
24050: PUSH
24051: LD_INT 92
24053: PUSH
24054: LD_INT 42
24056: PUSH
24057: EMPTY
24058: LIST
24059: LIST
24060: PUSH
24061: LD_INT 104
24063: PUSH
24064: LD_INT 33
24066: PUSH
24067: EMPTY
24068: LIST
24069: LIST
24070: PUSH
24071: EMPTY
24072: LIST
24073: LIST
24074: LIST
24075: LIST
24076: LIST
24077: PPUSH
24078: LD_INT 3
24080: PUSH
24081: LD_INT 6
24083: PUSH
24084: LD_INT 5
24086: PUSH
24087: EMPTY
24088: LIST
24089: LIST
24090: LIST
24091: PUSH
24092: EMPTY
24093: LIST
24094: PPUSH
24095: CALL_OW 398
24099: GO 24205
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST2 , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ ] ) ;
24101: LD_INT 1
24103: PPUSH
24104: LD_EXP 19
24108: PPUSH
24109: LD_INT 59
24111: PUSH
24112: LD_INT 86
24114: PUSH
24115: EMPTY
24116: LIST
24117: LIST
24118: PUSH
24119: LD_INT 92
24121: PUSH
24122: LD_INT 96
24124: PUSH
24125: EMPTY
24126: LIST
24127: LIST
24128: PUSH
24129: LD_INT 83
24131: PUSH
24132: LD_INT 71
24134: PUSH
24135: EMPTY
24136: LIST
24137: LIST
24138: PUSH
24139: LD_INT 77
24141: PUSH
24142: LD_INT 43
24144: PUSH
24145: EMPTY
24146: LIST
24147: LIST
24148: PUSH
24149: LD_INT 93
24151: PUSH
24152: LD_INT 43
24154: PUSH
24155: EMPTY
24156: LIST
24157: LIST
24158: PUSH
24159: LD_INT 95
24161: PUSH
24162: LD_INT 41
24164: PUSH
24165: EMPTY
24166: LIST
24167: LIST
24168: PUSH
24169: LD_INT 108
24171: PUSH
24172: LD_INT 31
24174: PUSH
24175: EMPTY
24176: LIST
24177: LIST
24178: PUSH
24179: LD_INT 99
24181: PUSH
24182: LD_INT 26
24184: PUSH
24185: EMPTY
24186: LIST
24187: LIST
24188: PUSH
24189: EMPTY
24190: LIST
24191: LIST
24192: LIST
24193: LIST
24194: LIST
24195: LIST
24196: LIST
24197: LIST
24198: PPUSH
24199: EMPTY
24200: PPUSH
24201: CALL_OW 398
// wait ( 2 2$0 ) ;
24205: LD_INT 4200
24207: PPUSH
24208: CALL_OW 67
// wait ( wait2 [ difficulty ] ) ;
24212: LD_EXP 64
24216: PUSH
24217: LD_OWVAR 67
24221: ARRAY
24222: PPUSH
24223: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
24227: LD_ADDR_VAR 0 1
24231: PUSH
24232: LD_INT 22
24234: PUSH
24235: LD_EXP 2
24239: PUSH
24240: EMPTY
24241: LIST
24242: LIST
24243: PUSH
24244: LD_INT 2
24246: PUSH
24247: LD_INT 21
24249: PUSH
24250: LD_INT 2
24252: PUSH
24253: EMPTY
24254: LIST
24255: LIST
24256: PUSH
24257: LD_INT 21
24259: PUSH
24260: LD_INT 1
24262: PUSH
24263: EMPTY
24264: LIST
24265: LIST
24266: PUSH
24267: EMPTY
24268: LIST
24269: LIST
24270: LIST
24271: PUSH
24272: EMPTY
24273: LIST
24274: LIST
24275: PPUSH
24276: CALL_OW 69
24280: ST_TO_ADDR
// if pom > 0 then
24281: LD_VAR 0 1
24285: PUSH
24286: LD_INT 0
24288: GREATER
24289: IFFALSE 24337
// McMove ( 1 , pom , [ [ 120 , 93 ] , [ 108 , 39 ] ] , [ mc_move_waitwp , mc_move_agressive ] ) ;
24291: LD_INT 1
24293: PPUSH
24294: LD_VAR 0 1
24298: PPUSH
24299: LD_INT 120
24301: PUSH
24302: LD_INT 93
24304: PUSH
24305: EMPTY
24306: LIST
24307: LIST
24308: PUSH
24309: LD_INT 108
24311: PUSH
24312: LD_INT 39
24314: PUSH
24315: EMPTY
24316: LIST
24317: LIST
24318: PUSH
24319: EMPTY
24320: LIST
24321: LIST
24322: PPUSH
24323: LD_INT 3
24325: PUSH
24326: LD_INT 6
24328: PUSH
24329: EMPTY
24330: LIST
24331: LIST
24332: PPUSH
24333: CALL_OW 398
// wait ( total_final [ difficulty ] ) ;
24337: LD_EXP 80
24341: PUSH
24342: LD_OWVAR 67
24346: ARRAY
24347: PPUSH
24348: CALL_OW 67
// for i in RUSSIAN_AFTER_END_ATTACK_LIST_FINAL do
24352: LD_ADDR_LOC 22
24356: PUSH
24357: LD_EXP 20
24361: PUSH
24362: FOR_IN
24363: IFFALSE 24409
// if nah <> 4 then
24365: LD_EXP 33
24369: PUSH
24370: LD_INT 4
24372: NONEQUAL
24373: IFFALSE 24392
// PlaceUnitArea ( i , RE2 , false ) else
24375: LD_LOC 22
24379: PPUSH
24380: LD_INT 5
24382: PPUSH
24383: LD_INT 0
24385: PPUSH
24386: CALL_OW 49
24390: GO 24407
// PlaceUnitArea ( i , REME , false ) ;
24392: LD_LOC 22
24396: PPUSH
24397: LD_INT 30
24399: PPUSH
24400: LD_INT 0
24402: PPUSH
24403: CALL_OW 49
24407: GO 24362
24409: POP
24410: POP
// if nah <> 4 then
24411: LD_EXP 33
24415: PUSH
24416: LD_INT 4
24418: NONEQUAL
24419: IFFALSE 24509
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST_FINAL , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
24421: LD_INT 1
24423: PPUSH
24424: LD_EXP 20
24428: PPUSH
24429: LD_INT 95
24431: PUSH
24432: LD_INT 93
24434: PUSH
24435: EMPTY
24436: LIST
24437: LIST
24438: PUSH
24439: LD_INT 80
24441: PUSH
24442: LD_INT 64
24444: PUSH
24445: EMPTY
24446: LIST
24447: LIST
24448: PUSH
24449: LD_INT 77
24451: PUSH
24452: LD_INT 45
24454: PUSH
24455: EMPTY
24456: LIST
24457: LIST
24458: PUSH
24459: LD_INT 92
24461: PUSH
24462: LD_INT 42
24464: PUSH
24465: EMPTY
24466: LIST
24467: LIST
24468: PUSH
24469: LD_INT 104
24471: PUSH
24472: LD_INT 33
24474: PUSH
24475: EMPTY
24476: LIST
24477: LIST
24478: PUSH
24479: EMPTY
24480: LIST
24481: LIST
24482: LIST
24483: LIST
24484: LIST
24485: PPUSH
24486: LD_INT 3
24488: PUSH
24489: LD_INT 6
24491: PUSH
24492: LD_INT 5
24494: PUSH
24495: EMPTY
24496: LIST
24497: LIST
24498: LIST
24499: PUSH
24500: EMPTY
24501: LIST
24502: PPUSH
24503: CALL_OW 398
24507: GO 24613
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST_FINAL , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ ] ) ;
24509: LD_INT 1
24511: PPUSH
24512: LD_EXP 20
24516: PPUSH
24517: LD_INT 59
24519: PUSH
24520: LD_INT 86
24522: PUSH
24523: EMPTY
24524: LIST
24525: LIST
24526: PUSH
24527: LD_INT 92
24529: PUSH
24530: LD_INT 96
24532: PUSH
24533: EMPTY
24534: LIST
24535: LIST
24536: PUSH
24537: LD_INT 83
24539: PUSH
24540: LD_INT 71
24542: PUSH
24543: EMPTY
24544: LIST
24545: LIST
24546: PUSH
24547: LD_INT 77
24549: PUSH
24550: LD_INT 43
24552: PUSH
24553: EMPTY
24554: LIST
24555: LIST
24556: PUSH
24557: LD_INT 93
24559: PUSH
24560: LD_INT 43
24562: PUSH
24563: EMPTY
24564: LIST
24565: LIST
24566: PUSH
24567: LD_INT 95
24569: PUSH
24570: LD_INT 41
24572: PUSH
24573: EMPTY
24574: LIST
24575: LIST
24576: PUSH
24577: LD_INT 108
24579: PUSH
24580: LD_INT 31
24582: PUSH
24583: EMPTY
24584: LIST
24585: LIST
24586: PUSH
24587: LD_INT 99
24589: PUSH
24590: LD_INT 26
24592: PUSH
24593: EMPTY
24594: LIST
24595: LIST
24596: PUSH
24597: EMPTY
24598: LIST
24599: LIST
24600: LIST
24601: LIST
24602: LIST
24603: LIST
24604: LIST
24605: LIST
24606: PPUSH
24607: EMPTY
24608: PPUSH
24609: CALL_OW 398
// enable ( 255 ) ;
24613: LD_INT 255
24615: ENABLE_MARKED
// end ;
24616: PPOPN 1
24618: END
// every 0 0$5 marked 255 do var i ; var AT ;
24619: GO 24621
24621: DISABLE
24622: LD_INT 0
24624: PPUSH
24625: PPUSH
// begin wait ( total_final [ difficulty ] ) ;
24626: LD_EXP 80
24630: PUSH
24631: LD_OWVAR 67
24635: ARRAY
24636: PPUSH
24637: CALL_OW 67
// AT = C_N_A ;
24641: LD_ADDR_VAR 0 2
24645: PUSH
24646: CALL 10222 0 0
24650: ST_TO_ADDR
// for i in AT do
24651: LD_ADDR_VAR 0 1
24655: PUSH
24656: LD_VAR 0 2
24660: PUSH
24661: FOR_IN
24662: IFFALSE 24708
// if nah <> 4 then
24664: LD_EXP 33
24668: PUSH
24669: LD_INT 4
24671: NONEQUAL
24672: IFFALSE 24691
// PlaceUnitArea ( i , RE2 , false ) else
24674: LD_VAR 0 1
24678: PPUSH
24679: LD_INT 5
24681: PPUSH
24682: LD_INT 0
24684: PPUSH
24685: CALL_OW 49
24689: GO 24706
// PlaceUnitArea ( i , REME , false ) ;
24691: LD_VAR 0 1
24695: PPUSH
24696: LD_INT 30
24698: PPUSH
24699: LD_INT 0
24701: PPUSH
24702: CALL_OW 49
24706: GO 24661
24708: POP
24709: POP
// if nah <> 4 then
24710: LD_EXP 33
24714: PUSH
24715: LD_INT 4
24717: NONEQUAL
24718: IFFALSE 24808
// McMove ( 1 , AT , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
24720: LD_INT 1
24722: PPUSH
24723: LD_VAR 0 2
24727: PPUSH
24728: LD_INT 95
24730: PUSH
24731: LD_INT 93
24733: PUSH
24734: EMPTY
24735: LIST
24736: LIST
24737: PUSH
24738: LD_INT 80
24740: PUSH
24741: LD_INT 64
24743: PUSH
24744: EMPTY
24745: LIST
24746: LIST
24747: PUSH
24748: LD_INT 77
24750: PUSH
24751: LD_INT 45
24753: PUSH
24754: EMPTY
24755: LIST
24756: LIST
24757: PUSH
24758: LD_INT 92
24760: PUSH
24761: LD_INT 42
24763: PUSH
24764: EMPTY
24765: LIST
24766: LIST
24767: PUSH
24768: LD_INT 104
24770: PUSH
24771: LD_INT 33
24773: PUSH
24774: EMPTY
24775: LIST
24776: LIST
24777: PUSH
24778: EMPTY
24779: LIST
24780: LIST
24781: LIST
24782: LIST
24783: LIST
24784: PPUSH
24785: LD_INT 3
24787: PUSH
24788: LD_INT 6
24790: PUSH
24791: LD_INT 5
24793: PUSH
24794: EMPTY
24795: LIST
24796: LIST
24797: LIST
24798: PUSH
24799: EMPTY
24800: LIST
24801: PPUSH
24802: CALL_OW 398
24806: GO 24916
// McMove ( 1 , AT , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ mc_move_agressive ] ) ;
24808: LD_INT 1
24810: PPUSH
24811: LD_VAR 0 2
24815: PPUSH
24816: LD_INT 59
24818: PUSH
24819: LD_INT 86
24821: PUSH
24822: EMPTY
24823: LIST
24824: LIST
24825: PUSH
24826: LD_INT 92
24828: PUSH
24829: LD_INT 96
24831: PUSH
24832: EMPTY
24833: LIST
24834: LIST
24835: PUSH
24836: LD_INT 83
24838: PUSH
24839: LD_INT 71
24841: PUSH
24842: EMPTY
24843: LIST
24844: LIST
24845: PUSH
24846: LD_INT 77
24848: PUSH
24849: LD_INT 43
24851: PUSH
24852: EMPTY
24853: LIST
24854: LIST
24855: PUSH
24856: LD_INT 93
24858: PUSH
24859: LD_INT 43
24861: PUSH
24862: EMPTY
24863: LIST
24864: LIST
24865: PUSH
24866: LD_INT 95
24868: PUSH
24869: LD_INT 41
24871: PUSH
24872: EMPTY
24873: LIST
24874: LIST
24875: PUSH
24876: LD_INT 108
24878: PUSH
24879: LD_INT 31
24881: PUSH
24882: EMPTY
24883: LIST
24884: LIST
24885: PUSH
24886: LD_INT 99
24888: PUSH
24889: LD_INT 26
24891: PUSH
24892: EMPTY
24893: LIST
24894: LIST
24895: PUSH
24896: EMPTY
24897: LIST
24898: LIST
24899: LIST
24900: LIST
24901: LIST
24902: LIST
24903: LIST
24904: LIST
24905: PPUSH
24906: LD_INT 6
24908: PUSH
24909: EMPTY
24910: LIST
24911: PPUSH
24912: CALL_OW 398
// wait ( 3 3$0 ) ;
24916: LD_INT 6300
24918: PPUSH
24919: CALL_OW 67
// enable ;
24923: ENABLE
// end ;
24924: PPOPN 2
24926: END
// on SpontaneousTeleported ( un ) do begin uvidel_spontalni_teleportaci ;
24927: CALL 32079 0 0
// disable ;
24931: DISABLE
// end ;
24932: PPOPN 1
24934: END
// export function posli_ruske_bazukery ; var baz ; var i ; begin
24935: LD_INT 0
24937: PPUSH
24938: PPUSH
24939: PPUSH
// baz = create_ruske_bazukery ;
24940: LD_ADDR_VAR 0 2
24944: PUSH
24945: CALL 9785 0 0
24949: ST_TO_ADDR
// for i in baz do
24950: LD_ADDR_VAR 0 3
24954: PUSH
24955: LD_VAR 0 2
24959: PUSH
24960: FOR_IN
24961: IFFALSE 24980
// PlaceUnitArea ( i , ABaz , false ) ;
24963: LD_VAR 0 3
24967: PPUSH
24968: LD_INT 34
24970: PPUSH
24971: LD_INT 0
24973: PPUSH
24974: CALL_OW 49
24978: GO 24960
24980: POP
24981: POP
// ComAgressiveMove ( baz , 118 , 40 ) ;
24982: LD_VAR 0 2
24986: PPUSH
24987: LD_INT 118
24989: PPUSH
24990: LD_INT 40
24992: PPUSH
24993: CALL_OW 114
// end ;
24997: LD_VAR 0 1
25001: RET
// every 0 0$2 trigger FilterUnitsInArea ( BAZUTOK , [ [ f_or , [ f_side , Rusi2 ] , [ f_side , Rusi ] ] , [ f_class , class_bazooker ] ] ) > 0 do var pom , pom1 ; var i ; var cile , cil ;
25002: LD_INT 33
25004: PPUSH
25005: LD_INT 2
25007: PUSH
25008: LD_INT 22
25010: PUSH
25011: LD_EXP 5
25015: PUSH
25016: EMPTY
25017: LIST
25018: LIST
25019: PUSH
25020: LD_INT 22
25022: PUSH
25023: LD_EXP 2
25027: PUSH
25028: EMPTY
25029: LIST
25030: LIST
25031: PUSH
25032: EMPTY
25033: LIST
25034: LIST
25035: LIST
25036: PUSH
25037: LD_INT 25
25039: PUSH
25040: LD_INT 9
25042: PUSH
25043: EMPTY
25044: LIST
25045: LIST
25046: PUSH
25047: EMPTY
25048: LIST
25049: LIST
25050: PPUSH
25051: CALL_OW 70
25055: PUSH
25056: LD_INT 0
25058: GREATER
25059: IFFALSE 25474
25061: GO 25063
25063: DISABLE
25064: LD_INT 0
25066: PPUSH
25067: PPUSH
25068: PPUSH
25069: PPUSH
25070: PPUSH
// begin pom1 = FilterUnitsInArea ( BAZUTOK , [ [ f_or , [ f_side , Rusi2 ] , [ f_side , Rusi ] ] , [ f_class , class_bazooker ] ] ) ;
25071: LD_ADDR_VAR 0 2
25075: PUSH
25076: LD_INT 33
25078: PPUSH
25079: LD_INT 2
25081: PUSH
25082: LD_INT 22
25084: PUSH
25085: LD_EXP 5
25089: PUSH
25090: EMPTY
25091: LIST
25092: LIST
25093: PUSH
25094: LD_INT 22
25096: PUSH
25097: LD_EXP 2
25101: PUSH
25102: EMPTY
25103: LIST
25104: LIST
25105: PUSH
25106: EMPTY
25107: LIST
25108: LIST
25109: LIST
25110: PUSH
25111: LD_INT 25
25113: PUSH
25114: LD_INT 9
25116: PUSH
25117: EMPTY
25118: LIST
25119: LIST
25120: PUSH
25121: EMPTY
25122: LIST
25123: LIST
25124: PPUSH
25125: CALL_OW 70
25129: ST_TO_ADDR
// pom = [ ] ;
25130: LD_ADDR_VAR 0 1
25134: PUSH
25135: EMPTY
25136: ST_TO_ADDR
// for i in pom1 do
25137: LD_ADDR_VAR 0 3
25141: PUSH
25142: LD_VAR 0 2
25146: PUSH
25147: FOR_IN
25148: IFFALSE 25179
// if Attacks ( i ) then
25150: LD_VAR 0 3
25154: PPUSH
25155: CALL_OW 320
25159: IFFALSE 25177
// pom = pom ^ i ;
25161: LD_ADDR_VAR 0 1
25165: PUSH
25166: LD_VAR 0 1
25170: PUSH
25171: LD_VAR 0 3
25175: ADD
25176: ST_TO_ADDR
25177: GO 25147
25179: POP
25180: POP
// for i in pom do
25181: LD_ADDR_VAR 0 3
25185: PUSH
25186: LD_VAR 0 1
25190: PUSH
25191: FOR_IN
25192: IFFALSE 25471
// if Prob ( 75 ) then
25194: LD_INT 75
25196: PPUSH
25197: CALL_OW 13
25201: IFFALSE 25469
// begin debug_strings = [ specialni bazookersky utok ] ;
25203: LD_ADDR_OWVAR 48
25207: PUSH
25208: LD_STRING specialni bazookersky utok
25210: PUSH
25211: EMPTY
25212: LIST
25213: ST_TO_ADDR
// msg ( specialni bazookersky utok ) ;
25214: LD_STRING specialni bazookersky utok
25216: PPUSH
25217: CALL_OW 100
// cile = FilterUnitsInArea ( Base2 , [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
25221: LD_ADDR_VAR 0 4
25225: PUSH
25226: LD_INT 13
25228: PPUSH
25229: LD_INT 22
25231: PUSH
25232: LD_EXP 3
25236: PUSH
25237: EMPTY
25238: LIST
25239: LIST
25240: PUSH
25241: LD_INT 2
25243: PUSH
25244: LD_INT 21
25246: PUSH
25247: LD_INT 1
25249: PUSH
25250: EMPTY
25251: LIST
25252: LIST
25253: PUSH
25254: LD_INT 21
25256: PUSH
25257: LD_INT 2
25259: PUSH
25260: EMPTY
25261: LIST
25262: LIST
25263: PUSH
25264: EMPTY
25265: LIST
25266: LIST
25267: LIST
25268: PUSH
25269: EMPTY
25270: LIST
25271: LIST
25272: PPUSH
25273: CALL_OW 70
25277: ST_TO_ADDR
// if cile = 0 then
25278: LD_VAR 0 4
25282: PUSH
25283: LD_INT 0
25285: EQUAL
25286: IFFALSE 25294
// exit else
25288: POP
25289: POP
25290: GO 25474
25292: GO 25353
// cil = [ cile [ Rand ( 1 , cile + 0 ) ] , NearestUnitToUnit ( cile , i ) ] [ Rand ( 1 , 2 ) ] ;
25294: LD_ADDR_VAR 0 5
25298: PUSH
25299: LD_VAR 0 4
25303: PUSH
25304: LD_INT 1
25306: PPUSH
25307: LD_VAR 0 4
25311: PUSH
25312: LD_INT 0
25314: PLUS
25315: PPUSH
25316: CALL_OW 12
25320: ARRAY
25321: PUSH
25322: LD_VAR 0 4
25326: PPUSH
25327: LD_VAR 0 3
25331: PPUSH
25332: CALL_OW 74
25336: PUSH
25337: EMPTY
25338: LIST
25339: LIST
25340: PUSH
25341: LD_INT 1
25343: PPUSH
25344: LD_INT 2
25346: PPUSH
25347: CALL_OW 12
25351: ARRAY
25352: ST_TO_ADDR
// case Rand ( 1 , 2 ) of 1 :
25353: LD_INT 1
25355: PPUSH
25356: LD_INT 2
25358: PPUSH
25359: CALL_OW 12
25363: PUSH
25364: LD_INT 1
25366: DOUBLE
25367: EQUAL
25368: IFTRUE 25372
25370: GO 25416
25372: POP
// begin ComSpaceShift ( i , GetX ( cil ) , GetY ( cil ) ) ;
25373: LD_VAR 0 3
25377: PPUSH
25378: LD_VAR 0 5
25382: PPUSH
25383: CALL_OW 250
25387: PPUSH
25388: LD_VAR 0 5
25392: PPUSH
25393: CALL_OW 251
25397: PPUSH
25398: CALL_OW 153
// AddComSailEvent ( i , 666 ) ;
25402: LD_VAR 0 3
25406: PPUSH
25407: LD_INT 666
25409: PPUSH
25410: CALL_OW 224
// end ; 2 :
25414: GO 25469
25416: LD_INT 2
25418: DOUBLE
25419: EQUAL
25420: IFTRUE 25424
25422: GO 25468
25424: POP
// begin ComTimeShift ( i , GetX ( cil ) , GetY ( cil ) ) ;
25425: LD_VAR 0 3
25429: PPUSH
25430: LD_VAR 0 5
25434: PPUSH
25435: CALL_OW 250
25439: PPUSH
25440: LD_VAR 0 5
25444: PPUSH
25445: CALL_OW 251
25449: PPUSH
25450: CALL_OW 154
// AddComSailEvent ( i , 666 ) ;
25454: LD_VAR 0 3
25458: PPUSH
25459: LD_INT 666
25461: PPUSH
25462: CALL_OW 224
// end ; end ;
25466: GO 25469
25468: POP
// end ;
25469: GO 25191
25471: POP
25472: POP
// enable ;
25473: ENABLE
// end ;
25474: PPOPN 5
25476: END
// every 0 0$7 marked 298 do var pomdoktori ;
25477: GO 25479
25479: DISABLE
25480: LD_INT 0
25482: PPUSH
// begin pomdoktori = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_class , class_scientistic ] ] ) ;
25483: LD_ADDR_VAR 0 1
25487: PUSH
25488: LD_LOC 21
25492: PPUSH
25493: LD_INT 22
25495: PUSH
25496: LD_EXP 2
25500: PUSH
25501: EMPTY
25502: LIST
25503: LIST
25504: PUSH
25505: LD_INT 25
25507: PUSH
25508: LD_INT 4
25510: PUSH
25511: EMPTY
25512: LIST
25513: LIST
25514: PUSH
25515: EMPTY
25516: LIST
25517: LIST
25518: PPUSH
25519: CALL_OW 70
25523: ST_TO_ADDR
// ComEnterUnit ( pomdoktori , R_lab ) ;
25524: LD_VAR 0 1
25528: PPUSH
25529: LD_LOC 33
25533: PPUSH
25534: CALL_OW 120
// enable ( 296 ) ;
25538: LD_INT 296
25540: ENABLE_MARKED
// end ;
25541: PPOPN 1
25543: END
// every 0 0$19 marked 297 do var pomvojcli ;
25544: GO 25546
25546: DISABLE
25547: LD_INT 0
25549: PPUSH
// begin pomvojcli = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) ;
25550: LD_ADDR_VAR 0 1
25554: PUSH
25555: LD_LOC 21
25559: PPUSH
25560: LD_INT 22
25562: PUSH
25563: LD_EXP 2
25567: PUSH
25568: EMPTY
25569: LIST
25570: LIST
25571: PUSH
25572: LD_INT 2
25574: PUSH
25575: LD_INT 25
25577: PUSH
25578: LD_INT 1
25580: PUSH
25581: EMPTY
25582: LIST
25583: LIST
25584: PUSH
25585: LD_INT 25
25587: PUSH
25588: LD_INT 9
25590: PUSH
25591: EMPTY
25592: LIST
25593: LIST
25594: PUSH
25595: EMPTY
25596: LIST
25597: LIST
25598: LIST
25599: PUSH
25600: EMPTY
25601: LIST
25602: LIST
25603: PPUSH
25604: CALL_OW 70
25608: ST_TO_ADDR
// ComEnterUnit ( pomvojcli , R_arm ) ;
25609: LD_VAR 0 1
25613: PPUSH
25614: LD_LOC 38
25618: PPUSH
25619: CALL_OW 120
// end ;
25623: PPOPN 1
25625: END
// every 0 0$3 marked 296 do
25626: GO 25628
25628: DISABLE
// begin SetTech ( tech_Tech3 , Rusi , state_enabled ) ;
25629: LD_INT 50
25631: PPUSH
25632: LD_EXP 2
25636: PPUSH
25637: LD_INT 1
25639: PPUSH
25640: CALL_OW 322
// ComResearch ( R_lab , tech_Tech3 ) ;
25644: LD_LOC 33
25648: PPUSH
25649: LD_INT 50
25651: PPUSH
25652: CALL_OW 124
// enable ( 295 ) ;
25656: LD_INT 295
25658: ENABLE_MARKED
// end ;
25659: END
// every 0 0$5 trigger GetTech ( tech_Tech3 , Rusi ) = state_researched marked 295 do
25660: LD_INT 50
25662: PPUSH
25663: LD_EXP 2
25667: PPUSH
25668: CALL_OW 321
25672: PUSH
25673: LD_INT 2
25675: EQUAL
25676: IFFALSE 25709
25678: GO 25680
25680: DISABLE
// begin SetTech ( tech_Tech3 , Rusi , state_enabled ) ;
25681: LD_INT 50
25683: PPUSH
25684: LD_EXP 2
25688: PPUSH
25689: LD_INT 1
25691: PPUSH
25692: CALL_OW 322
// ComResearch ( R_lab , tech_Tech3 ) ;
25696: LD_LOC 33
25700: PPUSH
25701: LD_INT 50
25703: PPUSH
25704: CALL_OW 124
// enable ;
25708: ENABLE
// end ;
25709: END
// every 0 0$1 do var i , pom ; var BASE_cesta ;
25710: GO 25712
25712: DISABLE
25713: LD_INT 0
25715: PPUSH
25716: PPUSH
25717: PPUSH
// begin while not dialog_u_zakladny_probehl do
25718: LD_EXP 39
25722: NOT
25723: IFFALSE 25734
// wait ( 0 0$3 ) ;
25725: LD_INT 105
25727: PPUSH
25728: CALL_OW 67
25732: GO 25718
// wait ( cas_na_cekani_pred_nultym_utokem [ difficulty ] ) ;
25734: LD_EXP 74
25738: PUSH
25739: LD_OWVAR 67
25743: ARRAY
25744: PPUSH
25745: CALL_OW 67
// for i in RUSKY_UTOK_0_LIST do
25749: LD_ADDR_VAR 0 1
25753: PUSH
25754: LD_EXP 17
25758: PUSH
25759: FOR_IN
25760: IFFALSE 25779
// PlaceUnitArea ( i , Rutok0 , false ) ;
25762: LD_VAR 0 1
25766: PPUSH
25767: LD_INT 29
25769: PPUSH
25770: LD_INT 0
25772: PPUSH
25773: CALL_OW 49
25777: GO 25759
25779: POP
25780: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
25781: LD_ADDR_VAR 0 2
25785: PUSH
25786: LD_INT 22
25788: PUSH
25789: LD_EXP 3
25793: PUSH
25794: EMPTY
25795: LIST
25796: LIST
25797: PUSH
25798: LD_INT 2
25800: PUSH
25801: LD_INT 30
25803: PUSH
25804: LD_INT 0
25806: PUSH
25807: EMPTY
25808: LIST
25809: LIST
25810: PUSH
25811: LD_INT 30
25813: PUSH
25814: LD_INT 1
25816: PUSH
25817: EMPTY
25818: LIST
25819: LIST
25820: PUSH
25821: EMPTY
25822: LIST
25823: LIST
25824: LIST
25825: PUSH
25826: EMPTY
25827: LIST
25828: LIST
25829: PPUSH
25830: CALL_OW 69
25834: ST_TO_ADDR
// if pom > 0 then
25835: LD_VAR 0 2
25839: PUSH
25840: LD_INT 0
25842: GREATER
25843: IFFALSE 25884
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
25845: LD_ADDR_VAR 0 3
25849: PUSH
25850: LD_VAR 0 2
25854: PUSH
25855: LD_INT 1
25857: ARRAY
25858: PPUSH
25859: CALL_OW 250
25863: PUSH
25864: LD_VAR 0 2
25868: PUSH
25869: LD_INT 1
25871: ARRAY
25872: PPUSH
25873: CALL_OW 251
25877: PUSH
25878: EMPTY
25879: LIST
25880: LIST
25881: ST_TO_ADDR
25882: GO 25899
// BASE_cesta = [ 60 , 8 ] ;
25884: LD_ADDR_VAR 0 3
25888: PUSH
25889: LD_INT 60
25891: PUSH
25892: LD_INT 8
25894: PUSH
25895: EMPTY
25896: LIST
25897: LIST
25898: ST_TO_ADDR
// McMove ( 1 , RUSKY_UTOK_0_LIST , [ [ 65 , 66 ] , [ 89 , 70 ] , [ 111 , 78 ] , [ 115 , 67 ] , [ 120 , 62 ] , [ 110 , 41 ] , BASE ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
25899: LD_INT 1
25901: PPUSH
25902: LD_EXP 17
25906: PPUSH
25907: LD_INT 65
25909: PUSH
25910: LD_INT 66
25912: PUSH
25913: EMPTY
25914: LIST
25915: LIST
25916: PUSH
25917: LD_INT 89
25919: PUSH
25920: LD_INT 70
25922: PUSH
25923: EMPTY
25924: LIST
25925: LIST
25926: PUSH
25927: LD_INT 111
25929: PUSH
25930: LD_INT 78
25932: PUSH
25933: EMPTY
25934: LIST
25935: LIST
25936: PUSH
25937: LD_INT 115
25939: PUSH
25940: LD_INT 67
25942: PUSH
25943: EMPTY
25944: LIST
25945: LIST
25946: PUSH
25947: LD_INT 120
25949: PUSH
25950: LD_INT 62
25952: PUSH
25953: EMPTY
25954: LIST
25955: LIST
25956: PUSH
25957: LD_INT 110
25959: PUSH
25960: LD_INT 41
25962: PUSH
25963: EMPTY
25964: LIST
25965: LIST
25966: PUSH
25967: LD_INT 12
25969: PUSH
25970: EMPTY
25971: LIST
25972: LIST
25973: LIST
25974: LIST
25975: LIST
25976: LIST
25977: LIST
25978: PPUSH
25979: LD_INT 6
25981: PUSH
25982: LD_INT 5
25984: PUSH
25985: LD_INT 3
25987: PUSH
25988: EMPTY
25989: LIST
25990: LIST
25991: LIST
25992: PPUSH
25993: CALL_OW 398
// enable ( 240 ) ;
25997: LD_INT 240
25999: ENABLE_MARKED
// zpracuj_ruske_utoceni ( RUSKY_UTOK_0_LIST ) ;
26000: LD_EXP 17
26004: PPUSH
26005: CALL 27451 0 1
// end ;
26009: PPOPN 3
26011: END
// every 1 1$0 marked 240 do var sourad ; var baz ; var BASE_cesta ;
26012: GO 26014
26014: DISABLE
26015: LD_INT 0
26017: PPUSH
26018: PPUSH
26019: PPUSH
// begin wait ( farusi [ difficulty ] ) ;
26020: LD_EXP 62
26024: PUSH
26025: LD_OWVAR 67
26029: ARRAY
26030: PPUSH
26031: CALL_OW 67
// for i in CREATE_RUSKY_ATTACK1_LIST do
26035: LD_ADDR_LOC 22
26039: PUSH
26040: LD_EXP 12
26044: PUSH
26045: FOR_IN
26046: IFFALSE 26065
// PlaceUnitArea ( i , RE3 , false ) ;
26048: LD_LOC 22
26052: PPUSH
26053: LD_INT 6
26055: PPUSH
26056: LD_INT 0
26058: PPUSH
26059: CALL_OW 49
26063: GO 26045
26065: POP
26066: POP
// RA1 := FilterUnitsInArea ( RE3 , [ [ f_side , Rusi ] ] ) ;
26067: LD_ADDR_LOC 27
26071: PUSH
26072: LD_INT 6
26074: PPUSH
26075: LD_INT 22
26077: PUSH
26078: LD_EXP 2
26082: PUSH
26083: EMPTY
26084: LIST
26085: LIST
26086: PUSH
26087: EMPTY
26088: LIST
26089: PPUSH
26090: CALL_OW 70
26094: ST_TO_ADDR
// if IsOK ( Ambase ) then
26095: LD_EXP 49
26099: PPUSH
26100: CALL_OW 302
26104: IFFALSE 26137
// sourad = [ GetX ( Ambase ) , GetY ( Ambase ) ] else
26106: LD_ADDR_VAR 0 1
26110: PUSH
26111: LD_EXP 49
26115: PPUSH
26116: CALL_OW 250
26120: PUSH
26121: LD_EXP 49
26125: PPUSH
26126: CALL_OW 251
26130: PUSH
26131: EMPTY
26132: LIST
26133: LIST
26134: ST_TO_ADDR
26135: GO 26152
// sourad = [ 99 , 30 ] ;
26137: LD_ADDR_VAR 0 1
26141: PUSH
26142: LD_INT 99
26144: PUSH
26145: LD_INT 30
26147: PUSH
26148: EMPTY
26149: LIST
26150: LIST
26151: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26152: LD_ADDR_LOC 23
26156: PUSH
26157: LD_INT 22
26159: PUSH
26160: LD_EXP 3
26164: PUSH
26165: EMPTY
26166: LIST
26167: LIST
26168: PUSH
26169: LD_INT 2
26171: PUSH
26172: LD_INT 30
26174: PUSH
26175: LD_INT 0
26177: PUSH
26178: EMPTY
26179: LIST
26180: LIST
26181: PUSH
26182: LD_INT 30
26184: PUSH
26185: LD_INT 1
26187: PUSH
26188: EMPTY
26189: LIST
26190: LIST
26191: PUSH
26192: EMPTY
26193: LIST
26194: LIST
26195: LIST
26196: PUSH
26197: EMPTY
26198: LIST
26199: LIST
26200: PPUSH
26201: CALL_OW 69
26205: ST_TO_ADDR
// if pom > 0 then
26206: LD_LOC 23
26210: PUSH
26211: LD_INT 0
26213: GREATER
26214: IFFALSE 26255
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26216: LD_ADDR_VAR 0 3
26220: PUSH
26221: LD_LOC 23
26225: PUSH
26226: LD_INT 1
26228: ARRAY
26229: PPUSH
26230: CALL_OW 250
26234: PUSH
26235: LD_LOC 23
26239: PUSH
26240: LD_INT 1
26242: ARRAY
26243: PPUSH
26244: CALL_OW 251
26248: PUSH
26249: EMPTY
26250: LIST
26251: LIST
26252: ST_TO_ADDR
26253: GO 26270
// BASE_cesta = [ 60 , 8 ] ;
26255: LD_ADDR_VAR 0 3
26259: PUSH
26260: LD_INT 60
26262: PUSH
26263: LD_INT 8
26265: PUSH
26266: EMPTY
26267: LIST
26268: LIST
26269: ST_TO_ADDR
// McMove ( 1 , RA1 , [ [ 95 , 98 ] , [ 77 , 54 ] , [ 85 , 45 ] , [ 93 , 45 ] , [ 106 , 42 ] , sourad , BASE_cesta ] , [ mc_move_dontcapture , mc_move_agressive ] ) ;
26270: LD_INT 1
26272: PPUSH
26273: LD_LOC 27
26277: PPUSH
26278: LD_INT 95
26280: PUSH
26281: LD_INT 98
26283: PUSH
26284: EMPTY
26285: LIST
26286: LIST
26287: PUSH
26288: LD_INT 77
26290: PUSH
26291: LD_INT 54
26293: PUSH
26294: EMPTY
26295: LIST
26296: LIST
26297: PUSH
26298: LD_INT 85
26300: PUSH
26301: LD_INT 45
26303: PUSH
26304: EMPTY
26305: LIST
26306: LIST
26307: PUSH
26308: LD_INT 93
26310: PUSH
26311: LD_INT 45
26313: PUSH
26314: EMPTY
26315: LIST
26316: LIST
26317: PUSH
26318: LD_INT 106
26320: PUSH
26321: LD_INT 42
26323: PUSH
26324: EMPTY
26325: LIST
26326: LIST
26327: PUSH
26328: LD_VAR 0 1
26332: PUSH
26333: LD_VAR 0 3
26337: PUSH
26338: EMPTY
26339: LIST
26340: LIST
26341: LIST
26342: LIST
26343: LIST
26344: LIST
26345: LIST
26346: PPUSH
26347: LD_INT 5
26349: PUSH
26350: LD_INT 6
26352: PUSH
26353: EMPTY
26354: LIST
26355: LIST
26356: PPUSH
26357: CALL_OW 398
// wait ( wait_spec_baz [ difficulty ] ) ;
26361: LD_EXP 77
26365: PUSH
26366: LD_OWVAR 67
26370: ARRAY
26371: PPUSH
26372: CALL_OW 67
// posli_ruske_bazukery ;
26376: CALL 24935 0 0
// enable ( 251 ) ;
26380: LD_INT 251
26382: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_RUSKY_ATTACK1_LIST ) ;
26383: LD_EXP 12
26387: PPUSH
26388: CALL 27451 0 1
// PRU_ATTACK = 1 ;
26392: LD_ADDR_EXP 35
26396: PUSH
26397: LD_INT 1
26399: ST_TO_ADDR
// end ;
26400: PPOPN 3
26402: END
// every 1 1$30 trigger PRU_ATTACK = 1 marked 251 do var sourad ; var BASE_cesta ;
26403: LD_EXP 35
26407: PUSH
26408: LD_INT 1
26410: EQUAL
26411: IFFALSE 26821
26413: GO 26415
26415: DISABLE
26416: LD_INT 0
26418: PPUSH
26419: PPUSH
// begin wait ( wait2new [ difficulty ] ) ;
26420: LD_EXP 67
26424: PUSH
26425: LD_OWVAR 67
26429: ARRAY
26430: PPUSH
26431: CALL_OW 67
// for i in CREATE_2_NEW_ATTACK_LIST do
26435: LD_ADDR_LOC 22
26439: PUSH
26440: LD_EXP 14
26444: PUSH
26445: FOR_IN
26446: IFFALSE 26477
// begin if not IsInUnit ( i ) then
26448: LD_LOC 22
26452: PPUSH
26453: CALL_OW 310
26457: NOT
26458: IFFALSE 26475
// PlaceUnitArea ( i , EnterAM , false ) ;
26460: LD_LOC 22
26464: PPUSH
26465: LD_INT 3
26467: PPUSH
26468: LD_INT 0
26470: PPUSH
26471: CALL_OW 49
// end ;
26475: GO 26445
26477: POP
26478: POP
// UTOK = FilterUnitsInArea ( EnterAM , [ [ f_side , Rusi ] ] ) ;
26479: LD_ADDR_LOC 44
26483: PUSH
26484: LD_INT 3
26486: PPUSH
26487: LD_INT 22
26489: PUSH
26490: LD_EXP 2
26494: PUSH
26495: EMPTY
26496: LIST
26497: LIST
26498: PUSH
26499: EMPTY
26500: LIST
26501: PPUSH
26502: CALL_OW 70
26506: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
26507: LD_ADDR_LOC 23
26511: PUSH
26512: LD_INT 22
26514: PUSH
26515: LD_EXP 3
26519: PUSH
26520: EMPTY
26521: LIST
26522: LIST
26523: PUSH
26524: LD_INT 1
26526: PUSH
26527: EMPTY
26528: LIST
26529: PUSH
26530: LD_INT 21
26532: PUSH
26533: LD_INT 3
26535: PUSH
26536: EMPTY
26537: LIST
26538: LIST
26539: PUSH
26540: EMPTY
26541: LIST
26542: LIST
26543: LIST
26544: PPUSH
26545: CALL_OW 69
26549: ST_TO_ADDR
// if pom > 0 then
26550: LD_LOC 23
26554: PUSH
26555: LD_INT 0
26557: GREATER
26558: IFFALSE 26599
// sourad = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26560: LD_ADDR_VAR 0 1
26564: PUSH
26565: LD_LOC 23
26569: PUSH
26570: LD_INT 1
26572: ARRAY
26573: PPUSH
26574: CALL_OW 250
26578: PUSH
26579: LD_LOC 23
26583: PUSH
26584: LD_INT 1
26586: ARRAY
26587: PPUSH
26588: CALL_OW 251
26592: PUSH
26593: EMPTY
26594: LIST
26595: LIST
26596: ST_TO_ADDR
26597: GO 26614
// sourad = [ 98 , 26 ] ;
26599: LD_ADDR_VAR 0 1
26603: PUSH
26604: LD_INT 98
26606: PUSH
26607: LD_INT 26
26609: PUSH
26610: EMPTY
26611: LIST
26612: LIST
26613: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26614: LD_ADDR_LOC 23
26618: PUSH
26619: LD_INT 22
26621: PUSH
26622: LD_EXP 3
26626: PUSH
26627: EMPTY
26628: LIST
26629: LIST
26630: PUSH
26631: LD_INT 2
26633: PUSH
26634: LD_INT 30
26636: PUSH
26637: LD_INT 0
26639: PUSH
26640: EMPTY
26641: LIST
26642: LIST
26643: PUSH
26644: LD_INT 30
26646: PUSH
26647: LD_INT 1
26649: PUSH
26650: EMPTY
26651: LIST
26652: LIST
26653: PUSH
26654: EMPTY
26655: LIST
26656: LIST
26657: LIST
26658: PUSH
26659: EMPTY
26660: LIST
26661: LIST
26662: PPUSH
26663: CALL_OW 69
26667: ST_TO_ADDR
// if pom > 0 then
26668: LD_LOC 23
26672: PUSH
26673: LD_INT 0
26675: GREATER
26676: IFFALSE 26717
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26678: LD_ADDR_VAR 0 2
26682: PUSH
26683: LD_LOC 23
26687: PUSH
26688: LD_INT 1
26690: ARRAY
26691: PPUSH
26692: CALL_OW 250
26696: PUSH
26697: LD_LOC 23
26701: PUSH
26702: LD_INT 1
26704: ARRAY
26705: PPUSH
26706: CALL_OW 251
26710: PUSH
26711: EMPTY
26712: LIST
26713: LIST
26714: ST_TO_ADDR
26715: GO 26732
// BASE_cesta = [ 70 , 48 ] ;
26717: LD_ADDR_VAR 0 2
26721: PUSH
26722: LD_INT 70
26724: PUSH
26725: LD_INT 48
26727: PUSH
26728: EMPTY
26729: LIST
26730: LIST
26731: ST_TO_ADDR
// McMove ( 1 , UTOK , [ [ 52 , 51 ] , [ 80 , 46 ] , [ 99 , 48 ] , sourad , BASE_cesta ] , [ mc_move_dontcapture , mc_move_agressive ] ) ;
26732: LD_INT 1
26734: PPUSH
26735: LD_LOC 44
26739: PPUSH
26740: LD_INT 52
26742: PUSH
26743: LD_INT 51
26745: PUSH
26746: EMPTY
26747: LIST
26748: LIST
26749: PUSH
26750: LD_INT 80
26752: PUSH
26753: LD_INT 46
26755: PUSH
26756: EMPTY
26757: LIST
26758: LIST
26759: PUSH
26760: LD_INT 99
26762: PUSH
26763: LD_INT 48
26765: PUSH
26766: EMPTY
26767: LIST
26768: LIST
26769: PUSH
26770: LD_VAR 0 1
26774: PUSH
26775: LD_VAR 0 2
26779: PUSH
26780: EMPTY
26781: LIST
26782: LIST
26783: LIST
26784: LIST
26785: LIST
26786: PPUSH
26787: LD_INT 5
26789: PUSH
26790: LD_INT 6
26792: PUSH
26793: EMPTY
26794: LIST
26795: LIST
26796: PPUSH
26797: CALL_OW 398
// PRU_Attack = 2 ;
26801: LD_ADDR_EXP 35
26805: PUSH
26806: LD_INT 2
26808: ST_TO_ADDR
// enable ( 289 ) ;
26809: LD_INT 289
26811: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_2_NEW_ATTACK_LIST ) ;
26812: LD_EXP 14
26816: PPUSH
26817: CALL 27451 0 1
// end ;
26821: PPOPN 2
26823: END
// every 0 0$10 marked 289 do var BASE_cesta ;
26824: GO 26826
26826: DISABLE
26827: LD_INT 0
26829: PPUSH
// begin wait ( wait3new [ difficulty ] ) ;
26830: LD_EXP 75
26834: PUSH
26835: LD_OWVAR 67
26839: ARRAY
26840: PPUSH
26841: CALL_OW 67
// for i in CREATE_3_NEW_ATTACK_LIST do
26845: LD_ADDR_LOC 22
26849: PUSH
26850: LD_EXP 15
26854: PUSH
26855: FOR_IN
26856: IFFALSE 26875
// PlaceUnitArea ( i , EnterAM , false ) ;
26858: LD_LOC 22
26862: PPUSH
26863: LD_INT 3
26865: PPUSH
26866: LD_INT 0
26868: PPUSH
26869: CALL_OW 49
26873: GO 26855
26875: POP
26876: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26877: LD_ADDR_LOC 23
26881: PUSH
26882: LD_INT 22
26884: PUSH
26885: LD_EXP 3
26889: PUSH
26890: EMPTY
26891: LIST
26892: LIST
26893: PUSH
26894: LD_INT 2
26896: PUSH
26897: LD_INT 30
26899: PUSH
26900: LD_INT 0
26902: PUSH
26903: EMPTY
26904: LIST
26905: LIST
26906: PUSH
26907: LD_INT 30
26909: PUSH
26910: LD_INT 1
26912: PUSH
26913: EMPTY
26914: LIST
26915: LIST
26916: PUSH
26917: EMPTY
26918: LIST
26919: LIST
26920: LIST
26921: PUSH
26922: EMPTY
26923: LIST
26924: LIST
26925: PPUSH
26926: CALL_OW 69
26930: ST_TO_ADDR
// if pom > 0 then
26931: LD_LOC 23
26935: PUSH
26936: LD_INT 0
26938: GREATER
26939: IFFALSE 26980
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26941: LD_ADDR_VAR 0 1
26945: PUSH
26946: LD_LOC 23
26950: PUSH
26951: LD_INT 1
26953: ARRAY
26954: PPUSH
26955: CALL_OW 250
26959: PUSH
26960: LD_LOC 23
26964: PUSH
26965: LD_INT 1
26967: ARRAY
26968: PPUSH
26969: CALL_OW 251
26973: PUSH
26974: EMPTY
26975: LIST
26976: LIST
26977: ST_TO_ADDR
26978: GO 26995
// BASE_cesta = [ 60 , 8 ] ;
26980: LD_ADDR_VAR 0 1
26984: PUSH
26985: LD_INT 60
26987: PUSH
26988: LD_INT 8
26990: PUSH
26991: EMPTY
26992: LIST
26993: LIST
26994: ST_TO_ADDR
// McMove ( 1 , CREATE_3_NEW_ATTACK_LIST , [ [ 56 , 51 ] , [ 81 , 44 ] , [ 100 , 29 ] , BASE_cesta ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
26995: LD_INT 1
26997: PPUSH
26998: LD_EXP 15
27002: PPUSH
27003: LD_INT 56
27005: PUSH
27006: LD_INT 51
27008: PUSH
27009: EMPTY
27010: LIST
27011: LIST
27012: PUSH
27013: LD_INT 81
27015: PUSH
27016: LD_INT 44
27018: PUSH
27019: EMPTY
27020: LIST
27021: LIST
27022: PUSH
27023: LD_INT 100
27025: PUSH
27026: LD_INT 29
27028: PUSH
27029: EMPTY
27030: LIST
27031: LIST
27032: PUSH
27033: LD_VAR 0 1
27037: PUSH
27038: EMPTY
27039: LIST
27040: LIST
27041: LIST
27042: LIST
27043: PPUSH
27044: LD_INT 6
27046: PUSH
27047: LD_INT 5
27049: PUSH
27050: LD_INT 3
27052: PUSH
27053: EMPTY
27054: LIST
27055: LIST
27056: LIST
27057: PPUSH
27058: CALL_OW 398
// PRU_Attack = 3 ;
27062: LD_ADDR_EXP 35
27066: PUSH
27067: LD_INT 3
27069: ST_TO_ADDR
// enable ( 288 ) ;
27070: LD_INT 288
27072: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_3_NEW_ATTACK_LIST ) ;
27073: LD_EXP 15
27077: PPUSH
27078: CALL 27451 0 1
// end ;
27082: PPOPN 1
27084: END
// every 0 0$17 trigger PRU_Attack = 3 marked 288 do var BASE_cesta ;
27085: LD_EXP 35
27089: PUSH
27090: LD_INT 3
27092: EQUAL
27093: IFFALSE 27341
27095: GO 27097
27097: DISABLE
27098: LD_INT 0
27100: PPUSH
// begin wait ( wait_bazooka_attack [ difficulty ] ) ;
27101: LD_EXP 76
27105: PUSH
27106: LD_OWVAR 67
27110: ARRAY
27111: PPUSH
27112: CALL_OW 67
// for i in CREATE_BAZOOKA_ATTACK_LIST do
27116: LD_ADDR_LOC 22
27120: PUSH
27121: LD_EXP 16
27125: PUSH
27126: FOR_IN
27127: IFFALSE 27146
// PlaceUnitArea ( i , RE2 , false ) ;
27129: LD_LOC 22
27133: PPUSH
27134: LD_INT 5
27136: PPUSH
27137: LD_INT 0
27139: PPUSH
27140: CALL_OW 49
27144: GO 27126
27146: POP
27147: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
27148: LD_ADDR_LOC 23
27152: PUSH
27153: LD_INT 22
27155: PUSH
27156: LD_EXP 3
27160: PUSH
27161: EMPTY
27162: LIST
27163: LIST
27164: PUSH
27165: LD_INT 2
27167: PUSH
27168: LD_INT 30
27170: PUSH
27171: LD_INT 0
27173: PUSH
27174: EMPTY
27175: LIST
27176: LIST
27177: PUSH
27178: LD_INT 30
27180: PUSH
27181: LD_INT 1
27183: PUSH
27184: EMPTY
27185: LIST
27186: LIST
27187: PUSH
27188: EMPTY
27189: LIST
27190: LIST
27191: LIST
27192: PUSH
27193: EMPTY
27194: LIST
27195: LIST
27196: PPUSH
27197: CALL_OW 69
27201: ST_TO_ADDR
// if pom > 0 then
27202: LD_LOC 23
27206: PUSH
27207: LD_INT 0
27209: GREATER
27210: IFFALSE 27251
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
27212: LD_ADDR_VAR 0 1
27216: PUSH
27217: LD_LOC 23
27221: PUSH
27222: LD_INT 1
27224: ARRAY
27225: PPUSH
27226: CALL_OW 250
27230: PUSH
27231: LD_LOC 23
27235: PUSH
27236: LD_INT 1
27238: ARRAY
27239: PPUSH
27240: CALL_OW 251
27244: PUSH
27245: EMPTY
27246: LIST
27247: LIST
27248: ST_TO_ADDR
27249: GO 27266
// BASE_cesta = [ 63 , 6 ] ;
27251: LD_ADDR_VAR 0 1
27255: PUSH
27256: LD_INT 63
27258: PUSH
27259: LD_INT 6
27261: PUSH
27262: EMPTY
27263: LIST
27264: LIST
27265: ST_TO_ADDR
// bazmakro = McMove ( 1 , CREATE_BAZOOKA_ATTACK_LIST , [ [ 92 , 93 ] , [ 121 , 91 ] , [ 126 , 76 ] ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
27266: LD_ADDR_LOC 49
27270: PUSH
27271: LD_INT 1
27273: PPUSH
27274: LD_EXP 16
27278: PPUSH
27279: LD_INT 92
27281: PUSH
27282: LD_INT 93
27284: PUSH
27285: EMPTY
27286: LIST
27287: LIST
27288: PUSH
27289: LD_INT 121
27291: PUSH
27292: LD_INT 91
27294: PUSH
27295: EMPTY
27296: LIST
27297: LIST
27298: PUSH
27299: LD_INT 126
27301: PUSH
27302: LD_INT 76
27304: PUSH
27305: EMPTY
27306: LIST
27307: LIST
27308: PUSH
27309: EMPTY
27310: LIST
27311: LIST
27312: LIST
27313: PPUSH
27314: LD_INT 6
27316: PUSH
27317: LD_INT 5
27319: PUSH
27320: LD_INT 3
27322: PUSH
27323: EMPTY
27324: LIST
27325: LIST
27326: LIST
27327: PPUSH
27328: CALL_OW 398
27332: ST_TO_ADDR
// PRU_Attack = 4 ;
27333: LD_ADDR_EXP 35
27337: PUSH
27338: LD_INT 4
27340: ST_TO_ADDR
// end ;
27341: PPOPN 1
27343: END
// every 0 0$1 trigger PRU_Attack = 4 and FilterUnitsInArea ( bazooka_attack_test , [ [ f_side , Rusi ] , [ f_class , class_bazooker ] ] ) > 1 do
27344: LD_EXP 35
27348: PUSH
27349: LD_INT 4
27351: EQUAL
27352: PUSH
27353: LD_INT 41
27355: PPUSH
27356: LD_INT 22
27358: PUSH
27359: LD_EXP 2
27363: PUSH
27364: EMPTY
27365: LIST
27366: LIST
27367: PUSH
27368: LD_INT 25
27370: PUSH
27371: LD_INT 9
27373: PUSH
27374: EMPTY
27375: LIST
27376: LIST
27377: PUSH
27378: EMPTY
27379: LIST
27380: LIST
27381: PPUSH
27382: CALL_OW 70
27386: PUSH
27387: LD_INT 1
27389: GREATER
27390: AND
27391: IFFALSE 27450
27393: GO 27395
27395: DISABLE
// begin KillMc ( bazmakro ) ;
27396: LD_LOC 49
27400: PPUSH
27401: CALL_OW 387
// ComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 129 , 70 ) ;
27405: LD_EXP 16
27409: PPUSH
27410: LD_INT 129
27412: PPUSH
27413: LD_INT 70
27415: PPUSH
27416: CALL_OW 114
// AddComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 126 , 52 ) ;
27420: LD_EXP 16
27424: PPUSH
27425: LD_INT 126
27427: PPUSH
27428: LD_INT 52
27430: PPUSH
27431: CALL_OW 174
// AddComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 110 , 36 ) ;
27435: LD_EXP 16
27439: PPUSH
27440: LD_INT 110
27442: PPUSH
27443: LD_INT 36
27445: PPUSH
27446: CALL_OW 174
// end ;
27450: END
// function zpracuj_ruske_utoceni ( jedn ) ; var j , pomj ; var i , pom ; var AIJ ; begin
27451: LD_INT 0
27453: PPUSH
27454: PPUSH
27455: PPUSH
27456: PPUSH
27457: PPUSH
27458: PPUSH
// j = jedn ;
27459: LD_ADDR_VAR 0 3
27463: PUSH
27464: LD_VAR 0 1
27468: ST_TO_ADDR
// while j <> 0 do
27469: LD_VAR 0 3
27473: PUSH
27474: LD_INT 0
27476: NONEQUAL
27477: IFFALSE 27766
// begin AIJ = [ ] ;
27479: LD_ADDR_VAR 0 7
27483: PUSH
27484: EMPTY
27485: ST_TO_ADDR
// for i in j do
27486: LD_ADDR_VAR 0 5
27490: PUSH
27491: LD_VAR 0 3
27495: PUSH
27496: FOR_IN
27497: IFFALSE 27528
// if IsIdle ( i ) then
27499: LD_VAR 0 5
27503: PPUSH
27504: CALL_OW 316
27508: IFFALSE 27526
// AIJ = AIJ ^ i ;
27510: LD_ADDR_VAR 0 7
27514: PUSH
27515: LD_VAR 0 7
27519: PUSH
27520: LD_VAR 0 5
27524: ADD
27525: ST_TO_ADDR
27526: GO 27496
27528: POP
27529: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
27530: LD_ADDR_VAR 0 6
27534: PUSH
27535: LD_INT 22
27537: PUSH
27538: LD_EXP 3
27542: PUSH
27543: EMPTY
27544: LIST
27545: LIST
27546: PUSH
27547: LD_INT 2
27549: PUSH
27550: LD_INT 30
27552: PUSH
27553: LD_INT 0
27555: PUSH
27556: EMPTY
27557: LIST
27558: LIST
27559: PUSH
27560: LD_INT 30
27562: PUSH
27563: LD_INT 1
27565: PUSH
27566: EMPTY
27567: LIST
27568: LIST
27569: PUSH
27570: EMPTY
27571: LIST
27572: LIST
27573: LIST
27574: PUSH
27575: EMPTY
27576: LIST
27577: LIST
27578: PPUSH
27579: CALL_OW 69
27583: ST_TO_ADDR
// if pom > 0 then
27584: LD_VAR 0 6
27588: PUSH
27589: LD_INT 0
27591: GREATER
27592: IFFALSE 27692
// begin ComAgressiveMove ( AIJ , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
27594: LD_VAR 0 7
27598: PPUSH
27599: LD_VAR 0 6
27603: PUSH
27604: LD_INT 1
27606: ARRAY
27607: PPUSH
27608: CALL_OW 250
27612: PPUSH
27613: LD_VAR 0 6
27617: PUSH
27618: LD_INT 1
27620: ARRAY
27621: PPUSH
27622: CALL_OW 251
27626: PPUSH
27627: CALL_OW 114
// AddComAttackUnit ( AIJ , pom [ 1 ] ) ;
27631: LD_VAR 0 7
27635: PPUSH
27636: LD_VAR 0 6
27640: PUSH
27641: LD_INT 1
27643: ARRAY
27644: PPUSH
27645: CALL_OW 175
// AddComAgressiveMove ( AIJ , GetX ( JMM ) , GetY ( JMM ) ) ;
27649: LD_VAR 0 7
27653: PPUSH
27654: LD_EXP 40
27658: PPUSH
27659: CALL_OW 250
27663: PPUSH
27664: LD_EXP 40
27668: PPUSH
27669: CALL_OW 251
27673: PPUSH
27674: CALL_OW 174
// AddComAttackUnit ( AIJ , JMM ) ;
27678: LD_VAR 0 7
27682: PPUSH
27683: LD_EXP 40
27687: PPUSH
27688: CALL_OW 175
// end ; pomj = j ;
27692: LD_ADDR_VAR 0 4
27696: PUSH
27697: LD_VAR 0 3
27701: ST_TO_ADDR
// for i in j do
27702: LD_ADDR_VAR 0 5
27706: PUSH
27707: LD_VAR 0 3
27711: PUSH
27712: FOR_IN
27713: IFFALSE 27745
// if not IsOK ( i ) then
27715: LD_VAR 0 5
27719: PPUSH
27720: CALL_OW 302
27724: NOT
27725: IFFALSE 27743
// pomj = pomj diff i ;
27727: LD_ADDR_VAR 0 4
27731: PUSH
27732: LD_VAR 0 4
27736: PUSH
27737: LD_VAR 0 5
27741: DIFF
27742: ST_TO_ADDR
27743: GO 27712
27745: POP
27746: POP
// j = pomj ;
27747: LD_ADDR_VAR 0 3
27751: PUSH
27752: LD_VAR 0 4
27756: ST_TO_ADDR
// wait ( 0 0$1 ) ;
27757: LD_INT 35
27759: PPUSH
27760: CALL_OW 67
// end ;
27764: GO 27469
// end ; end_of_file
27766: LD_VAR 0 2
27770: RET
// var i ; var pom , pom1 , pom2 , pom3 , pom4 , pom5 ; var asol ; var cor_dial1 , cor_dial2 ; var disable_kecy1 ; var disable_kecy2 ; export Dial ; export dialog_u_zakladny_probehl ; var test_ukonceni_allowed ; every 0 0$0.1 do
27771: GO 27773
27773: DISABLE
// begin disable_kecy1 = false ;
27774: LD_ADDR_LOC 60
27778: PUSH
27779: LD_INT 0
27781: ST_TO_ADDR
// disable_kecy2 = false ;
27782: LD_ADDR_LOC 61
27786: PUSH
27787: LD_INT 0
27789: ST_TO_ADDR
// dialog_u_zakladny_probehl = false ;
27790: LD_ADDR_EXP 39
27794: PUSH
27795: LD_INT 0
27797: ST_TO_ADDR
// test_ukonceni_allowed = false ;
27798: LD_ADDR_LOC 62
27802: PUSH
27803: LD_INT 0
27805: ST_TO_ADDR
// cor_dial1 = false ;
27806: LD_ADDR_LOC 58
27810: PUSH
27811: LD_INT 0
27813: ST_TO_ADDR
// cor_dial2 = false ;
27814: LD_ADDR_LOC 59
27818: PUSH
27819: LD_INT 0
27821: ST_TO_ADDR
// for i := 1 to 8 do
27822: LD_ADDR_LOC 50
27826: PUSH
27827: DOUBLE
27828: LD_INT 1
27830: DEC
27831: ST_TO_ADDR
27832: LD_INT 8
27834: PUSH
27835: FOR_TO
27836: IFFALSE 27849
// disable ( 100 + i ) ;
27838: LD_INT 100
27840: PUSH
27841: LD_LOC 50
27845: PLUS
27846: DISABLE_MARKED
27847: GO 27835
27849: POP
27850: POP
// end ;
27851: END
// every 0 0$1 do
27852: GO 27854
27854: DISABLE
// begin Say ( Gary , D2-Gary-1 ) ;
27855: LD_EXP 42
27859: PPUSH
27860: LD_STRING D2-Gary-1
27862: PPUSH
27863: CALL_OW 88
// Say ( JMM , D2-JMM-1 ) ;
27867: LD_EXP 40
27871: PPUSH
27872: LD_STRING D2-JMM-1
27874: PPUSH
27875: CALL_OW 88
// Say ( Gary , D2-Gary-2 ) ;
27879: LD_EXP 42
27883: PPUSH
27884: LD_STRING D2-Gary-2
27886: PPUSH
27887: CALL_OW 88
// SaveForQuickRestart ;
27891: CALL_OW 22
// wait ( 0 0$1 ) ;
27895: LD_INT 35
27897: PPUSH
27898: CALL_OW 67
// ingame_video = false ;
27902: LD_ADDR_OWVAR 52
27906: PUSH
27907: LD_INT 0
27909: ST_TO_ADDR
// ChangeMissionObjectives ( M1 ) ;
27910: LD_STRING M1
27912: PPUSH
27913: CALL_OW 337
// end ;
27917: END
// every 0 0$1 trigger Dial >= 1 do
27918: LD_EXP 38
27922: PUSH
27923: LD_INT 1
27925: GREATEREQUAL
27926: IFFALSE 27938
27928: GO 27930
27930: DISABLE
// begin ChangeMissionObjectives ( M1a ) ;
27931: LD_STRING M1a
27933: PPUSH
27934: CALL_OW 337
// end ;
27938: END
// every 0 0$4 trigger FilterUnitsInArea ( Base , [ [ f_side , You ] ] ) > 0 do
27939: LD_INT 12
27941: PPUSH
27942: LD_INT 22
27944: PUSH
27945: LD_EXP 3
27949: PUSH
27950: EMPTY
27951: LIST
27952: LIST
27953: PUSH
27954: EMPTY
27955: LIST
27956: PPUSH
27957: CALL_OW 70
27961: PUSH
27962: LD_INT 0
27964: GREATER
27965: IFFALSE 28420
27967: GO 27969
27969: DISABLE
// begin pom1 = 0 ;
27970: LD_ADDR_LOC 52
27974: PUSH
27975: LD_INT 0
27977: ST_TO_ADDR
// pom = FilterUnitsInArea ( Base , [ [ f_side , You ] ] ) ;
27978: LD_ADDR_LOC 51
27982: PUSH
27983: LD_INT 12
27985: PPUSH
27986: LD_INT 22
27988: PUSH
27989: LD_EXP 3
27993: PUSH
27994: EMPTY
27995: LIST
27996: LIST
27997: PUSH
27998: EMPTY
27999: LIST
28000: PPUSH
28001: CALL_OW 70
28005: ST_TO_ADDR
// for i in pom do
28006: LD_ADDR_LOC 50
28010: PUSH
28011: LD_LOC 51
28015: PUSH
28016: FOR_IN
28017: IFFALSE 28079
// begin if GetType ( i ) then
28019: LD_LOC 50
28023: PPUSH
28024: CALL_OW 247
28028: IFFALSE 28055
// if JMM = IsDrivenBy ( i ) then
28030: LD_EXP 40
28034: PUSH
28035: LD_LOC 50
28039: PPUSH
28040: CALL_OW 311
28044: EQUAL
28045: IFFALSE 28055
// pom1 = 1 ;
28047: LD_ADDR_LOC 52
28051: PUSH
28052: LD_INT 1
28054: ST_TO_ADDR
// if IsInArea ( JMM , Base ) then
28055: LD_EXP 40
28059: PPUSH
28060: LD_INT 12
28062: PPUSH
28063: CALL_OW 308
28067: IFFALSE 28077
// pom1 = 1 ;
28069: LD_ADDR_LOC 52
28073: PUSH
28074: LD_INT 1
28076: ST_TO_ADDR
// end ;
28077: GO 28016
28079: POP
28080: POP
// if pom1 = 1 then
28081: LD_LOC 52
28085: PUSH
28086: LD_INT 1
28088: EQUAL
28089: IFFALSE 28419
// begin InGameOn ;
28091: CALL_OW 8
// while not IsOK ( JMM ) do
28095: LD_EXP 40
28099: PPUSH
28100: CALL_OW 302
28104: NOT
28105: IFFALSE 28116
// wait ( 0 0$1 ) ;
28107: LD_INT 35
28109: PPUSH
28110: CALL_OW 67
28114: GO 28095
// ComMoveUnit ( JMM , Simms ) ;
28116: LD_EXP 40
28120: PPUSH
28121: LD_EXP 44
28125: PPUSH
28126: CALL_OW 112
// ComMoveUnit ( Simms , JMM ) ;
28130: LD_EXP 44
28134: PPUSH
28135: LD_EXP 40
28139: PPUSH
28140: CALL_OW 112
// wait ( 0 0$1 ) ;
28144: LD_INT 35
28146: PPUSH
28147: CALL_OW 67
// CenterOnUnits ( [ JMM , Simms ] ) ;
28151: LD_EXP 40
28155: PUSH
28156: LD_EXP 44
28160: PUSH
28161: EMPTY
28162: LIST
28163: LIST
28164: PPUSH
28165: CALL_OW 85
// Say ( Simms , D2a-Sim-1 ) ;
28169: LD_EXP 44
28173: PPUSH
28174: LD_STRING D2a-Sim-1
28176: PPUSH
28177: CALL_OW 88
// Say ( JMM , D2a-JMM-1 ) ;
28181: LD_EXP 40
28185: PPUSH
28186: LD_STRING D2a-JMM-1
28188: PPUSH
28189: CALL_OW 88
// CenterOnUnits ( [ JMM , Simms ] ) ;
28193: LD_EXP 40
28197: PUSH
28198: LD_EXP 44
28202: PUSH
28203: EMPTY
28204: LIST
28205: LIST
28206: PPUSH
28207: CALL_OW 85
// if IsOK ( Joan_F ) then
28211: LD_EXP 41
28215: PPUSH
28216: CALL_OW 302
28220: IFFALSE 28316
// begin Say ( Joan_F , D2b-Joan-1 ) ;
28222: LD_EXP 41
28226: PPUSH
28227: LD_STRING D2b-Joan-1
28229: PPUSH
28230: CALL_OW 88
// Say ( JMM , D2b-JMM-1 ) ;
28234: LD_EXP 40
28238: PPUSH
28239: LD_STRING D2b-JMM-1
28241: PPUSH
28242: CALL_OW 88
// Say ( Joan_F , D2b-Joan-2 ) ;
28246: LD_EXP 41
28250: PPUSH
28251: LD_STRING D2b-Joan-2
28253: PPUSH
28254: CALL_OW 88
// if IsOK ( Denis ) then
28258: LD_EXP 46
28262: PPUSH
28263: CALL_OW 302
28267: IFFALSE 28281
// Say ( Denis , D2c-Den-1 ) ;
28269: LD_EXP 46
28273: PPUSH
28274: LD_STRING D2c-Den-1
28276: PPUSH
28277: CALL_OW 88
// if IsOK ( Khattam ) then
28281: LD_EXP 43
28285: PPUSH
28286: CALL_OW 302
28290: IFFALSE 28316
// begin Say ( JMM , D2c-JMM-1 ) ;
28292: LD_EXP 40
28296: PPUSH
28297: LD_STRING D2c-JMM-1
28299: PPUSH
28300: CALL_OW 88
// Say ( Khattam , D2c-Khat-1 ) ;
28304: LD_EXP 43
28308: PPUSH
28309: LD_STRING D2c-Khat-1
28311: PPUSH
28312: CALL_OW 88
// end ; end ; CenterOnUnits ( [ JMM , Simms ] ) ;
28316: LD_EXP 40
28320: PUSH
28321: LD_EXP 44
28325: PUSH
28326: EMPTY
28327: LIST
28328: LIST
28329: PPUSH
28330: CALL_OW 85
// ComMoveXY ( Simms , 110 , 35 ) ;
28334: LD_EXP 44
28338: PPUSH
28339: LD_INT 110
28341: PPUSH
28342: LD_INT 35
28344: PPUSH
28345: CALL_OW 111
// InGameOff ;
28349: CALL_OW 9
// dialog_u_zakladny_probehl = true ;
28353: LD_ADDR_EXP 39
28357: PUSH
28358: LD_INT 1
28360: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You2 ] ] ) ;
28361: LD_ADDR_LOC 51
28365: PUSH
28366: LD_INT 22
28368: PUSH
28369: LD_EXP 6
28373: PUSH
28374: EMPTY
28375: LIST
28376: LIST
28377: PUSH
28378: EMPTY
28379: LIST
28380: PPUSH
28381: CALL_OW 69
28385: ST_TO_ADDR
// for i in pom do
28386: LD_ADDR_LOC 50
28390: PUSH
28391: LD_LOC 51
28395: PUSH
28396: FOR_IN
28397: IFFALSE 28415
// SetSide ( i , You ) ;
28399: LD_LOC 50
28403: PPUSH
28404: LD_EXP 3
28408: PPUSH
28409: CALL_OW 235
28413: GO 28396
28415: POP
28416: POP
// end else
28417: GO 28420
// enable ;
28419: ENABLE
// end ;
28420: END
// every 0 0$3 trigger Dial >= 3 do
28421: LD_EXP 38
28425: PUSH
28426: LD_INT 3
28428: GREATEREQUAL
28429: IFFALSE 28878
28431: GO 28433
28433: DISABLE
// begin testfight ;
28434: CALL 31552 0 0
// Res := 1 ;
28438: LD_ADDR_EXP 57
28442: PUSH
28443: LD_INT 1
28445: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_solar_power ] , [ f_btype , b_oil_power ] , [ f_btype , b_siberite_power ] ] ] ) ;
28446: LD_ADDR_LOC 51
28450: PUSH
28451: LD_INT 22
28453: PUSH
28454: LD_EXP 3
28458: PUSH
28459: EMPTY
28460: LIST
28461: LIST
28462: PUSH
28463: LD_INT 2
28465: PUSH
28466: LD_INT 30
28468: PUSH
28469: LD_INT 27
28471: PUSH
28472: EMPTY
28473: LIST
28474: LIST
28475: PUSH
28476: LD_INT 30
28478: PUSH
28479: LD_INT 26
28481: PUSH
28482: EMPTY
28483: LIST
28484: LIST
28485: PUSH
28486: LD_INT 30
28488: PUSH
28489: LD_INT 28
28491: PUSH
28492: EMPTY
28493: LIST
28494: LIST
28495: PUSH
28496: EMPTY
28497: LIST
28498: LIST
28499: LIST
28500: LIST
28501: PUSH
28502: EMPTY
28503: LIST
28504: LIST
28505: PPUSH
28506: CALL_OW 69
28510: ST_TO_ADDR
// if pom > 0 then
28511: LD_LOC 51
28515: PUSH
28516: LD_INT 0
28518: GREATER
28519: IFFALSE 28877
// begin while IsConstructed ( pom [ 1 ] ) <> 0 do
28521: LD_LOC 51
28525: PUSH
28526: LD_INT 1
28528: ARRAY
28529: PPUSH
28530: CALL_OW 304
28534: PUSH
28535: LD_INT 0
28537: NONEQUAL
28538: IFFALSE 28549
// wait ( 0 0$1 ) ;
28540: LD_INT 35
28542: PPUSH
28543: CALL_OW 67
28547: GO 28521
// DialogueOn ;
28549: CALL_OW 6
// while not IsOK ( JMM ) do
28553: LD_EXP 40
28557: PPUSH
28558: CALL_OW 302
28562: NOT
28563: IFFALSE 28574
// wait ( 0 0$1 ) ;
28565: LD_INT 35
28567: PPUSH
28568: CALL_OW 67
28572: GO 28553
// pom = GetPeople ( sex_male , class_scientistic , [ Gary , JMM , Cyrus , Denis ] ) ;
28574: LD_ADDR_LOC 51
28578: PUSH
28579: LD_INT 1
28581: PPUSH
28582: LD_INT 4
28584: PPUSH
28585: LD_EXP 42
28589: PUSH
28590: LD_EXP 40
28594: PUSH
28595: LD_EXP 45
28599: PUSH
28600: LD_EXP 46
28604: PUSH
28605: EMPTY
28606: LIST
28607: LIST
28608: LIST
28609: LIST
28610: PPUSH
28611: CALL 31589 0 3
28615: ST_TO_ADDR
// if pom = 0 then
28616: LD_LOC 51
28620: PUSH
28621: LD_INT 0
28623: EQUAL
28624: IFFALSE 28640
// Say ( JMM , D3-JMM-3 ) else
28626: LD_EXP 40
28630: PPUSH
28631: LD_STRING D3-JMM-3
28633: PPUSH
28634: CALL_OW 88
28638: GO 28875
// begin Say ( pom [ 1 ] , D3-Sci1-1 ) ;
28640: LD_LOC 51
28644: PUSH
28645: LD_INT 1
28647: ARRAY
28648: PPUSH
28649: LD_STRING D3-Sci1-1
28651: PPUSH
28652: CALL_OW 88
// if IsOK ( Gary ) then
28656: LD_EXP 42
28660: PPUSH
28661: CALL_OW 302
28665: IFFALSE 28681
// Say ( Gary , D3-Gary-1 ) else
28667: LD_EXP 42
28671: PPUSH
28672: LD_STRING D3-Gary-1
28674: PPUSH
28675: CALL_OW 88
28679: GO 28789
// begin pom4 = GetPeople ( sex_male , class_soldier , [ JMM , GARY , pom [ 1 ] ] ) ;
28681: LD_ADDR_LOC 55
28685: PUSH
28686: LD_INT 1
28688: PPUSH
28689: LD_INT 1
28691: PPUSH
28692: LD_EXP 40
28696: PUSH
28697: LD_EXP 42
28701: PUSH
28702: LD_LOC 51
28706: PUSH
28707: LD_INT 1
28709: ARRAY
28710: PUSH
28711: EMPTY
28712: LIST
28713: LIST
28714: LIST
28715: PPUSH
28716: CALL 31589 0 3
28720: ST_TO_ADDR
// if pom4 > 0 then
28721: LD_LOC 55
28725: PUSH
28726: LD_INT 0
28728: GREATER
28729: IFFALSE 28749
// Say ( pom4 [ 1 ] , D3-Sol1-1 ) else
28731: LD_LOC 55
28735: PUSH
28736: LD_INT 1
28738: ARRAY
28739: PPUSH
28740: LD_STRING D3-Sol1-1
28742: PPUSH
28743: CALL_OW 88
28747: GO 28789
// if pom > 1 then
28749: LD_LOC 51
28753: PUSH
28754: LD_INT 1
28756: GREATER
28757: IFFALSE 28777
// Say ( pom [ 2 ] , D3-Sol1-1 ) else
28759: LD_LOC 51
28763: PUSH
28764: LD_INT 2
28766: ARRAY
28767: PPUSH
28768: LD_STRING D3-Sol1-1
28770: PPUSH
28771: CALL_OW 88
28775: GO 28789
// Say ( JMM , D3-Sol1-1 ) ;
28777: LD_EXP 40
28781: PPUSH
28782: LD_STRING D3-Sol1-1
28784: PPUSH
28785: CALL_OW 88
// end ; Say ( pom [ 1 ] , D3-Sci1-2 ) ;
28789: LD_LOC 51
28793: PUSH
28794: LD_INT 1
28796: ARRAY
28797: PPUSH
28798: LD_STRING D3-Sci1-2
28800: PPUSH
28801: CALL_OW 88
// Say ( JMM , D3-JMM-2 ) ;
28805: LD_EXP 40
28809: PPUSH
28810: LD_STRING D3-JMM-2
28812: PPUSH
28813: CALL_OW 88
// Say ( pom [ 1 ] , D3-Sci1-3 ) ;
28817: LD_LOC 51
28821: PUSH
28822: LD_INT 1
28824: ARRAY
28825: PPUSH
28826: LD_STRING D3-Sci1-3
28828: PPUSH
28829: CALL_OW 88
// Say ( JMM , D3-JMM-3 ) ;
28833: LD_EXP 40
28837: PPUSH
28838: LD_STRING D3-JMM-3
28840: PPUSH
28841: CALL_OW 88
// Say ( pom [ 1 ] , D3-Sci1-4 ) ;
28845: LD_LOC 51
28849: PUSH
28850: LD_INT 1
28852: ARRAY
28853: PPUSH
28854: LD_STRING D3-Sci1-4
28856: PPUSH
28857: CALL_OW 88
// ChangeMissionObjectives ( M2 ) ;
28861: LD_STRING M2
28863: PPUSH
28864: CALL_OW 337
// enable ( 104 ) ;
28868: LD_INT 104
28870: ENABLE_MARKED
// DialogueOff ;
28871: CALL_OW 7
// end ; end else
28875: GO 28878
// enable ;
28877: ENABLE
// end ;
28878: END
// every 0 0$5 do var pom ;
28879: GO 28881
28881: DISABLE
28882: LD_INT 0
28884: PPUSH
// begin if GetTech ( tech_SibPow , You ) = state_researched and GetTech ( tech_Sib1 , You ) = state_researched and GetTech ( tech_Sib2 , You ) = state_researched then
28885: LD_INT 21
28887: PPUSH
28888: LD_EXP 3
28892: PPUSH
28893: CALL_OW 321
28897: PUSH
28898: LD_INT 2
28900: EQUAL
28901: PUSH
28902: LD_INT 54
28904: PPUSH
28905: LD_EXP 3
28909: PPUSH
28910: CALL_OW 321
28914: PUSH
28915: LD_INT 2
28917: EQUAL
28918: AND
28919: PUSH
28920: LD_INT 55
28922: PPUSH
28923: LD_EXP 3
28927: PPUSH
28928: CALL_OW 321
28932: PUSH
28933: LD_INT 2
28935: EQUAL
28936: AND
28937: IFFALSE 29052
// begin if GetTech ( tech_AI , You ) = state_researched and GetTech ( tech_LasSight , You ) = state_researched then
28939: LD_INT 32
28941: PPUSH
28942: LD_EXP 3
28946: PPUSH
28947: CALL_OW 321
28951: PUSH
28952: LD_INT 2
28954: EQUAL
28955: PUSH
28956: LD_INT 12
28958: PPUSH
28959: LD_EXP 3
28963: PPUSH
28964: CALL_OW 321
28968: PUSH
28969: LD_INT 2
28971: EQUAL
28972: AND
28973: IFFALSE 28984
// Mission_end ( ukonceni - dialogues 133 ) else
28975: LD_STRING ukonceni - dialogues 133
28977: PPUSH
28978: CALL 375 0 1
28982: GO 29050
// begin ChangeMissionObjectives ( M2a ) ;
28984: LD_STRING M2a
28986: PPUSH
28987: CALL_OW 337
// pom = Query ( QEndMission ) ;
28991: LD_ADDR_VAR 0 1
28995: PUSH
28996: LD_STRING QEndMission
28998: PPUSH
28999: CALL_OW 97
29003: ST_TO_ADDR
// EMR = true ;
29004: LD_ADDR_EXP 36
29008: PUSH
29009: LD_INT 1
29011: ST_TO_ADDR
// if pom = 2 then
29012: LD_VAR 0 1
29016: PUSH
29017: LD_INT 2
29019: EQUAL
29020: IFFALSE 29031
// Mission_end ( po odklepnuti ze konci - dialogues 138 ) else
29022: LD_STRING po odklepnuti ze konci - dialogues 138
29024: PPUSH
29025: CALL 375 0 1
29029: GO 29047
// begin end_the_mission_allowed = true ;
29031: LD_ADDR_OWVAR 57
29035: PUSH
29036: LD_INT 1
29038: ST_TO_ADDR
// test_ukonceni_allowed = true ;
29039: LD_ADDR_LOC 62
29043: PUSH
29044: LD_INT 1
29046: ST_TO_ADDR
// end ; disable ( 104 ) ;
29047: LD_INT 104
29049: DISABLE_MARKED
// end ; end else
29050: GO 29053
// enable ;
29052: ENABLE
// end ;
29053: PPOPN 1
29055: END
// every 0 0$6 trigger GetTech ( tech_LasSight , You ) = state_researched do
29056: LD_INT 12
29058: PPUSH
29059: LD_EXP 3
29063: PPUSH
29064: CALL_OW 321
29068: PUSH
29069: LD_INT 2
29071: EQUAL
29072: IFFALSE 29084
29074: GO 29076
29076: DISABLE
// begin ChangeMissionObjectives ( M2b ) ;
29077: LD_STRING M2b
29079: PPUSH
29080: CALL_OW 337
// end ;
29084: END
// every 0 0$6 trigger GetTech ( tech_AI , You ) = state_researched do
29085: LD_INT 32
29087: PPUSH
29088: LD_EXP 3
29092: PPUSH
29093: CALL_OW 321
29097: PUSH
29098: LD_INT 2
29100: EQUAL
29101: IFFALSE 29113
29103: GO 29105
29105: DISABLE
// begin ChangeMissionObjectives ( M2c ) ;
29106: LD_STRING M2c
29108: PPUSH
29109: CALL_OW 337
// end ;
29113: END
// every 2 2$30 marked 104 do
29114: GO 29116
29116: DISABLE
// begin testfight ;
29117: CALL 31552 0 0
// if IsOK ( Simms ) and IsInArea ( Simms , Base2 ) and ( not disable_kecy1 ) then
29121: LD_EXP 44
29125: PPUSH
29126: CALL_OW 302
29130: PUSH
29131: LD_EXP 44
29135: PPUSH
29136: LD_INT 13
29138: PPUSH
29139: CALL_OW 308
29143: AND
29144: PUSH
29145: LD_LOC 60
29149: NOT
29150: AND
29151: IFFALSE 29391
// begin DialogueOn ;
29153: CALL_OW 6
// pom = GetPeople ( sex_male , class_scientistic , [ JMM ] ) ;
29157: LD_ADDR_LOC 51
29161: PUSH
29162: LD_INT 1
29164: PPUSH
29165: LD_INT 4
29167: PPUSH
29168: LD_EXP 40
29172: PUSH
29173: EMPTY
29174: LIST
29175: PPUSH
29176: CALL 31589 0 3
29180: ST_TO_ADDR
// Say ( Simms , D3a-Sim-1 ) ;
29181: LD_EXP 44
29185: PPUSH
29186: LD_STRING D3a-Sim-1
29188: PPUSH
29189: CALL_OW 88
// if pom > 0 then
29193: LD_LOC 51
29197: PUSH
29198: LD_INT 0
29200: GREATER
29201: IFFALSE 29219
// pom1 = pom [ 1 ] else
29203: LD_ADDR_LOC 52
29207: PUSH
29208: LD_LOC 51
29212: PUSH
29213: LD_INT 1
29215: ARRAY
29216: ST_TO_ADDR
29217: GO 29229
// pom1 = JMM ;
29219: LD_ADDR_LOC 52
29223: PUSH
29224: LD_EXP 40
29228: ST_TO_ADDR
// Say ( pom1 , D3a-Sci1-1 ) ;
29229: LD_LOC 52
29233: PPUSH
29234: LD_STRING D3a-Sci1-1
29236: PPUSH
29237: CALL_OW 88
// Say ( Simms , D3a-Sim-2 ) ;
29241: LD_EXP 44
29245: PPUSH
29246: LD_STRING D3a-Sim-2
29248: PPUSH
29249: CALL_OW 88
// Say ( pom1 , D3a-Sci1-2 ) ;
29253: LD_LOC 52
29257: PPUSH
29258: LD_STRING D3a-Sci1-2
29260: PPUSH
29261: CALL_OW 88
// Say ( Simms , D3a-Sim-3 ) ;
29265: LD_EXP 44
29269: PPUSH
29270: LD_STRING D3a-Sim-3
29272: PPUSH
29273: CALL_OW 88
// Say ( pom1 , D3a-Sci1-3 ) ;
29277: LD_LOC 52
29281: PPUSH
29282: LD_STRING D3a-Sci1-3
29284: PPUSH
29285: CALL_OW 88
// if IsLive ( Joan_F ) then
29289: LD_EXP 41
29293: PPUSH
29294: CALL_OW 300
29298: IFFALSE 29314
// Say ( Simms , D3a-Sim-4 ) else
29300: LD_EXP 44
29304: PPUSH
29305: LD_STRING D3a-Sim-4
29307: PPUSH
29308: CALL_OW 88
29312: GO 29326
// Say ( Simms , D3a-Sim-4a ) ;
29314: LD_EXP 44
29318: PPUSH
29319: LD_STRING D3a-Sim-4a
29321: PPUSH
29322: CALL_OW 88
// Say ( pom1 , D3a-Sci1-4 ) ;
29326: LD_LOC 52
29330: PPUSH
29331: LD_STRING D3a-Sci1-4
29333: PPUSH
29334: CALL_OW 88
// Say ( Simms , D3a-Sim-5 ) ;
29338: LD_EXP 44
29342: PPUSH
29343: LD_STRING D3a-Sim-5
29345: PPUSH
29346: CALL_OW 88
// Say ( pom1 , D3a-Sci1-5 ) ;
29350: LD_LOC 52
29354: PPUSH
29355: LD_STRING D3a-Sci1-5
29357: PPUSH
29358: CALL_OW 88
// Say ( Simms , D3a-Sim-6 ) ;
29362: LD_EXP 44
29366: PPUSH
29367: LD_STRING D3a-Sim-6
29369: PPUSH
29370: CALL_OW 88
// DialogueOff ;
29374: CALL_OW 7
// disable_kecy1 = true ;
29378: LD_ADDR_LOC 60
29382: PUSH
29383: LD_INT 1
29385: ST_TO_ADDR
// enable ( 105 ) ;
29386: LD_INT 105
29388: ENABLE_MARKED
// end else
29389: GO 29392
// enable ;
29391: ENABLE
// end ;
29392: END
// every 0 0$30 marked 105 do var pomkecy ;
29393: GO 29395
29395: DISABLE
29396: LD_INT 0
29398: PPUSH
// begin wait ( Rand ( 0 0$5 , 1 1$0 ) ) ;
29399: LD_INT 175
29401: PPUSH
29402: LD_INT 2100
29404: PPUSH
29405: CALL_OW 12
29409: PPUSH
29410: CALL_OW 67
// testfight ;
29414: CALL 31552 0 0
// pomkecy = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] , [ f_sex , sex_male ] ] ) ;
29418: LD_ADDR_VAR 0 1
29422: PUSH
29423: LD_INT 22
29425: PUSH
29426: LD_EXP 1
29430: PUSH
29431: EMPTY
29432: LIST
29433: LIST
29434: PUSH
29435: LD_INT 21
29437: PUSH
29438: LD_INT 1
29440: PUSH
29441: EMPTY
29442: LIST
29443: LIST
29444: PUSH
29445: LD_INT 26
29447: PUSH
29448: LD_INT 1
29450: PUSH
29451: EMPTY
29452: LIST
29453: LIST
29454: PUSH
29455: EMPTY
29456: LIST
29457: LIST
29458: LIST
29459: PPUSH
29460: CALL_OW 69
29464: ST_TO_ADDR
// pomkecy = pomkecy diff Dietrich ;
29465: LD_ADDR_VAR 0 1
29469: PUSH
29470: LD_VAR 0 1
29474: PUSH
29475: LD_EXP 25
29479: DIFF
29480: ST_TO_ADDR
// if IsOK ( Dietrich ) and IsOK ( Khattam ) and ( not disable_kecy2 ) then
29481: LD_EXP 25
29485: PPUSH
29486: CALL_OW 302
29490: PUSH
29491: LD_EXP 43
29495: PPUSH
29496: CALL_OW 302
29500: AND
29501: PUSH
29502: LD_LOC 61
29506: NOT
29507: AND
29508: IFFALSE 29597
// begin if pomkecy > 0 then
29510: LD_VAR 0 1
29514: PUSH
29515: LD_INT 0
29517: GREATER
29518: IFFALSE 29536
// pom = pomkecy [ 1 ] else
29520: LD_ADDR_LOC 51
29524: PUSH
29525: LD_VAR 0 1
29529: PUSH
29530: LD_INT 1
29532: ARRAY
29533: ST_TO_ADDR
29534: GO 29538
// exit ;
29536: GO 29597
// Say ( pom , D5-Ar1-1 ) ;
29538: LD_LOC 51
29542: PPUSH
29543: LD_STRING D5-Ar1-1
29545: PPUSH
29546: CALL_OW 88
// Say ( Dietrich , D5-Diet-1 ) ;
29550: LD_EXP 25
29554: PPUSH
29555: LD_STRING D5-Diet-1
29557: PPUSH
29558: CALL_OW 88
// Say ( pom , D5-Ar1-2 ) ;
29562: LD_LOC 51
29566: PPUSH
29567: LD_STRING D5-Ar1-2
29569: PPUSH
29570: CALL_OW 88
// Say ( Dietrich , D5-Diet-2 ) ;
29574: LD_EXP 25
29578: PPUSH
29579: LD_STRING D5-Diet-2
29581: PPUSH
29582: CALL_OW 88
// enable ( 106 ) ;
29586: LD_INT 106
29588: ENABLE_MARKED
// disable_kecy2 = true ;
29589: LD_ADDR_LOC 61
29593: PUSH
29594: LD_INT 1
29596: ST_TO_ADDR
// end ; end ;
29597: PPOPN 1
29599: END
// every 0 0$30 marked 106 do
29600: GO 29602
29602: DISABLE
// begin testfight ;
29603: CALL 31552 0 0
// DialogueOn ;
29607: CALL_OW 6
// pom = GetPeople ( sex_male , class_scientistic , [ JMM , Khattam ] ) ;
29611: LD_ADDR_LOC 51
29615: PUSH
29616: LD_INT 1
29618: PPUSH
29619: LD_INT 4
29621: PPUSH
29622: LD_EXP 40
29626: PUSH
29627: LD_EXP 43
29631: PUSH
29632: EMPTY
29633: LIST
29634: LIST
29635: PPUSH
29636: CALL 31589 0 3
29640: ST_TO_ADDR
// if pom > 0 then
29641: LD_LOC 51
29645: PUSH
29646: LD_INT 0
29648: GREATER
29649: IFFALSE 29788
// begin while not IsOK ( JMM ) do
29651: LD_EXP 40
29655: PPUSH
29656: CALL_OW 302
29660: NOT
29661: IFFALSE 29672
// wait ( 0 0$1 ) ;
29663: LD_INT 35
29665: PPUSH
29666: CALL_OW 67
29670: GO 29651
// Say ( JMM , D6-JMM-1 ) ;
29672: LD_EXP 40
29676: PPUSH
29677: LD_STRING D6-JMM-1
29679: PPUSH
29680: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-1 ) ;
29684: LD_LOC 51
29688: PUSH
29689: LD_INT 1
29691: ARRAY
29692: PPUSH
29693: LD_STRING D6-Sci1-1
29695: PPUSH
29696: CALL_OW 88
// Say ( JMM , D6-JMM-2 ) ;
29700: LD_EXP 40
29704: PPUSH
29705: LD_STRING D6-JMM-2
29707: PPUSH
29708: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-2 ) ;
29712: LD_LOC 51
29716: PUSH
29717: LD_INT 1
29719: ARRAY
29720: PPUSH
29721: LD_STRING D6-Sci1-2
29723: PPUSH
29724: CALL_OW 88
// Say ( JMM , D6-JMM-3 ) ;
29728: LD_EXP 40
29732: PPUSH
29733: LD_STRING D6-JMM-3
29735: PPUSH
29736: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-3 ) ;
29740: LD_LOC 51
29744: PUSH
29745: LD_INT 1
29747: ARRAY
29748: PPUSH
29749: LD_STRING D6-Sci1-3
29751: PPUSH
29752: CALL_OW 88
// Say ( JMM , D6-JMM-4 ) ;
29756: LD_EXP 40
29760: PPUSH
29761: LD_STRING D6-JMM-4
29763: PPUSH
29764: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-4 ) ;
29768: LD_LOC 51
29772: PUSH
29773: LD_INT 1
29775: ARRAY
29776: PPUSH
29777: LD_STRING D6-Sci1-4
29779: PPUSH
29780: CALL_OW 88
// DialogueOff ;
29784: CALL_OW 7
// end ; COR_GO = 1 ;
29788: LD_ADDR_EXP 53
29792: PUSH
29793: LD_INT 1
29795: ST_TO_ADDR
// enable ( 108 ) ;
29796: LD_INT 108
29798: ENABLE_MARKED
// end ;
29799: END
// every 4 4$0 do var npom ;
29800: GO 29802
29802: DISABLE
29803: LD_INT 0
29805: PPUSH
// begin wait ( timerusi [ difficulty ] ) ;
29806: LD_EXP 58
29810: PUSH
29811: LD_OWVAR 67
29815: ARRAY
29816: PPUSH
29817: CALL_OW 67
// npom = create_kecal ;
29821: LD_ADDR_VAR 0 1
29825: PUSH
29826: CALL 9727 0 0
29830: ST_TO_ADDR
// wait ( 0 0$2 ) ;
29831: LD_INT 70
29833: PPUSH
29834: CALL_OW 67
// SayRadio ( npom , D4-FSol1-1 ) ;
29838: LD_VAR 0 1
29842: PPUSH
29843: LD_STRING D4-FSol1-1
29845: PPUSH
29846: CALL_OW 94
// wait ( 0 0$5 ) ;
29850: LD_INT 175
29852: PPUSH
29853: CALL_OW 67
// ChangeMissionObjectives ( M3 ) ;
29857: LD_STRING M3
29859: PPUSH
29860: CALL_OW 337
// case nah of 1 , 2 :
29864: LD_EXP 33
29868: PUSH
29869: LD_INT 1
29871: DOUBLE
29872: EQUAL
29873: IFTRUE 29883
29875: LD_INT 2
29877: DOUBLE
29878: EQUAL
29879: IFTRUE 29883
29881: GO 29898
29883: POP
// RevealFogArea ( You , Seekon2 ) ; 3 , 4 :
29884: LD_EXP 3
29888: PPUSH
29889: LD_INT 15
29891: PPUSH
29892: CALL_OW 332
29896: GO 29928
29898: LD_INT 3
29900: DOUBLE
29901: EQUAL
29902: IFTRUE 29912
29904: LD_INT 4
29906: DOUBLE
29907: EQUAL
29908: IFTRUE 29912
29910: GO 29927
29912: POP
// RevealFogArea ( You , Seekon1 ) ; end ;
29913: LD_EXP 3
29917: PPUSH
29918: LD_INT 14
29920: PPUSH
29921: CALL_OW 332
29925: GO 29928
29927: POP
// KillUnit ( npom ) ;
29928: LD_VAR 0 1
29932: PPUSH
29933: CALL_OW 66
// end ;
29937: PPOPN 1
29939: END
// every 0 0$0.1 trigger COR_GO = 2 marked 108 do
29940: LD_EXP 53
29944: PUSH
29945: LD_INT 2
29947: EQUAL
29948: IFFALSE 30192
29950: GO 29952
29952: DISABLE
// begin if See ( You , Cornel ) then
29953: LD_EXP 3
29957: PPUSH
29958: LD_EXP 48
29962: PPUSH
29963: CALL_OW 292
29967: IFFALSE 30191
// begin if cor_dial1 then
29969: LD_LOC 58
29973: IFFALSE 29977
// exit ;
29975: GO 30192
// while not IsOK ( JMM ) do
29977: LD_EXP 40
29981: PPUSH
29982: CALL_OW 302
29986: NOT
29987: IFFALSE 29998
// wait ( 0 0$1 ) ;
29989: LD_INT 35
29991: PPUSH
29992: CALL_OW 67
29996: GO 29977
// SetSide ( Cornel , You ) ;
29998: LD_EXP 48
30002: PPUSH
30003: LD_EXP 3
30007: PPUSH
30008: CALL_OW 235
// CenterOnUnits ( Cornel ) ;
30012: LD_EXP 48
30016: PPUSH
30017: CALL_OW 85
// InGameOn ;
30021: CALL_OW 8
// pom = GetPeople ( sex_female , class_soldier , [ ] ) ;
30025: LD_ADDR_LOC 51
30029: PUSH
30030: LD_INT 2
30032: PPUSH
30033: LD_INT 1
30035: PPUSH
30036: EMPTY
30037: PPUSH
30038: CALL 31589 0 3
30042: ST_TO_ADDR
// SetLives ( Cornel , 300 ) ;
30043: LD_EXP 48
30047: PPUSH
30048: LD_INT 300
30050: PPUSH
30051: CALL_OW 234
// RevealFogArea ( You , Corsee ) ;
30055: LD_EXP 3
30059: PPUSH
30060: LD_INT 18
30062: PPUSH
30063: CALL_OW 332
// cor_dial1 = true ;
30067: LD_ADDR_LOC 58
30071: PUSH
30072: LD_INT 1
30074: ST_TO_ADDR
// Say ( Cornel , D7-Corn-1 ) ;
30075: LD_EXP 48
30079: PPUSH
30080: LD_STRING D7-Corn-1
30082: PPUSH
30083: CALL_OW 88
// if pom > 0 then
30087: LD_LOC 51
30091: PUSH
30092: LD_INT 0
30094: GREATER
30095: IFFALSE 30113
// Say ( pom [ 1 ] , D7-FSol1-1 ) ;
30097: LD_LOC 51
30101: PUSH
30102: LD_INT 1
30104: ARRAY
30105: PPUSH
30106: LD_STRING D7-FSol1-1
30108: PPUSH
30109: CALL_OW 88
// Say ( Cornel , D7-Corn-2 ) ;
30113: LD_EXP 48
30117: PPUSH
30118: LD_STRING D7-Corn-2
30120: PPUSH
30121: CALL_OW 88
// Say ( JMM , D7-JMM-2 ) ;
30125: LD_EXP 40
30129: PPUSH
30130: LD_STRING D7-JMM-2
30132: PPUSH
30133: CALL_OW 88
// Say ( Cornel , D7-Corn-3 ) ;
30137: LD_EXP 48
30141: PPUSH
30142: LD_STRING D7-Corn-3
30144: PPUSH
30145: CALL_OW 88
// ComCrawl ( Cornel ) ;
30149: LD_EXP 48
30153: PPUSH
30154: CALL_OW 137
// SetLives ( Cornel , 200 ) ;
30158: LD_EXP 48
30162: PPUSH
30163: LD_INT 200
30165: PPUSH
30166: CALL_OW 234
// Say ( JMM , D7-JMM-3 ) ;
30170: LD_EXP 40
30174: PPUSH
30175: LD_STRING D7-JMM-3
30177: PPUSH
30178: CALL_OW 88
// InGameOff ;
30182: CALL_OW 9
// enable ( 107 ) ;
30186: LD_INT 107
30188: ENABLE_MARKED
// end else
30189: GO 30192
// enable ;
30191: ENABLE
// end ;
30192: END
// every 0 0$5 marked 107 do
30193: GO 30195
30195: DISABLE
// begin testfight ;
30196: CALL 31552 0 0
// if IsOK ( Cornel ) and IsInArea ( JMM , Base2 ) then
30200: LD_EXP 48
30204: PPUSH
30205: CALL_OW 302
30209: PUSH
30210: LD_EXP 40
30214: PPUSH
30215: LD_INT 13
30217: PPUSH
30218: CALL_OW 308
30222: AND
30223: IFFALSE 30479
// begin if cor_dial2 then
30225: LD_LOC 59
30229: IFFALSE 30233
// exit ;
30231: GO 30480
// wait ( 0 0$10 ) ;
30233: LD_INT 350
30235: PPUSH
30236: CALL_OW 67
// DialogueOn ;
30240: CALL_OW 6
// while not IsOK ( JMM ) do
30244: LD_EXP 40
30248: PPUSH
30249: CALL_OW 302
30253: NOT
30254: IFFALSE 30265
// wait ( 0 0$1 ) ;
30256: LD_INT 35
30258: PPUSH
30259: CALL_OW 67
30263: GO 30244
// cor_dial2 = true ;
30265: LD_ADDR_LOC 59
30269: PUSH
30270: LD_INT 1
30272: ST_TO_ADDR
// Say ( JMM , D7a-JMM-1 ) ;
30273: LD_EXP 40
30277: PPUSH
30278: LD_STRING D7a-JMM-1
30280: PPUSH
30281: CALL_OW 88
// Say ( Cornel , D7a-Corn-1 ) ;
30285: LD_EXP 48
30289: PPUSH
30290: LD_STRING D7a-Corn-1
30292: PPUSH
30293: CALL_OW 88
// Say ( JMM , D7a-JMM-2 ) ;
30297: LD_EXP 40
30301: PPUSH
30302: LD_STRING D7a-JMM-2
30304: PPUSH
30305: CALL_OW 88
// Say ( Cornel , D7a-Corn-2 ) ;
30309: LD_EXP 48
30313: PPUSH
30314: LD_STRING D7a-Corn-2
30316: PPUSH
30317: CALL_OW 88
// Say ( JMM , D7a-JMM-3 ) ;
30321: LD_EXP 40
30325: PPUSH
30326: LD_STRING D7a-JMM-3
30328: PPUSH
30329: CALL_OW 88
// Say ( Cornel , D7a-Corn-3 ) ;
30333: LD_EXP 48
30337: PPUSH
30338: LD_STRING D7a-Corn-3
30340: PPUSH
30341: CALL_OW 88
// Say ( JMM , D7a-JMM-4 ) ;
30345: LD_EXP 40
30349: PPUSH
30350: LD_STRING D7a-JMM-4
30352: PPUSH
30353: CALL_OW 88
// Say ( Cornel , D7a-Corn-4 ) ;
30357: LD_EXP 48
30361: PPUSH
30362: LD_STRING D7a-Corn-4
30364: PPUSH
30365: CALL_OW 88
// Say ( JMM , D7a-JMM-5 ) ;
30369: LD_EXP 40
30373: PPUSH
30374: LD_STRING D7a-JMM-5
30376: PPUSH
30377: CALL_OW 88
// Say ( Cornel , D7a-Corn-5 ) ;
30381: LD_EXP 48
30385: PPUSH
30386: LD_STRING D7a-Corn-5
30388: PPUSH
30389: CALL_OW 88
// Say ( JMM , D7a-JMM-6 ) ;
30393: LD_EXP 40
30397: PPUSH
30398: LD_STRING D7a-JMM-6
30400: PPUSH
30401: CALL_OW 88
// if VIDEL_MIKHAILA then
30405: LD_EXP 81
30409: IFFALSE 30425
// Say ( Cornel , D7a-Corn-6 ) else
30411: LD_EXP 48
30415: PPUSH
30416: LD_STRING D7a-Corn-6
30418: PPUSH
30419: CALL_OW 88
30423: GO 30437
// Say ( Cornel , D7a-Corn-6a ) ;
30425: LD_EXP 48
30429: PPUSH
30430: LD_STRING D7a-Corn-6a
30432: PPUSH
30433: CALL_OW 88
// Say ( JMM , D7a-JMM-7 ) ;
30437: LD_EXP 40
30441: PPUSH
30442: LD_STRING D7a-JMM-7
30444: PPUSH
30445: CALL_OW 88
// Say ( Cornel , D7a-Corn-7 ) ;
30449: LD_EXP 48
30453: PPUSH
30454: LD_STRING D7a-Corn-7
30456: PPUSH
30457: CALL_OW 88
// Say ( JMM , D7a-JMM-8 ) ;
30461: LD_EXP 40
30465: PPUSH
30466: LD_STRING D7a-JMM-8
30468: PPUSH
30469: CALL_OW 88
// DialogueOff ;
30473: CALL_OW 7
// end else
30477: GO 30480
// enable ;
30479: ENABLE
// end ;
30480: END
// on SailEvent ( num ) do begin if num = 666 then
30481: LD_VAR 0 1
30485: PUSH
30486: LD_INT 666
30488: EQUAL
30489: IFFALSE 30715
// begin msg ( jsem na zacatku kecu o bazukach atd. ) ;
30491: LD_STRING jsem na zacatku kecu o bazukach atd.
30493: PPUSH
30494: CALL_OW 100
// wait ( 0 0$3 ) ;
30498: LD_INT 105
30500: PPUSH
30501: CALL_OW 67
// DialogueOn ;
30505: CALL_OW 6
// while not IsOK ( JMM ) do
30509: LD_EXP 40
30513: PPUSH
30514: CALL_OW 302
30518: NOT
30519: IFFALSE 30530
// wait ( 0 0$1 ) ;
30521: LD_INT 35
30523: PPUSH
30524: CALL_OW 67
30528: GO 30509
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
30530: LD_ADDR_LOC 51
30534: PUSH
30535: LD_INT 1
30537: PPUSH
30538: LD_INT 1
30540: PPUSH
30541: LD_EXP 40
30545: PUSH
30546: EMPTY
30547: LIST
30548: PPUSH
30549: CALL 31589 0 3
30553: ST_TO_ADDR
// if IsOK ( Cyrus ) then
30554: LD_EXP 45
30558: PPUSH
30559: CALL_OW 302
30563: IFFALSE 30611
// if VI_O_GRANATECH then
30565: LD_EXP 82
30569: IFFALSE 30597
// begin Say ( Cyrus , D9a-Cyrus-1 ) ;
30571: LD_EXP 45
30575: PPUSH
30576: LD_STRING D9a-Cyrus-1
30578: PPUSH
30579: CALL_OW 88
// Say ( JMM , D9a-JMM-1 ) ;
30583: LD_EXP 40
30587: PPUSH
30588: LD_STRING D9a-JMM-1
30590: PPUSH
30591: CALL_OW 88
// end else
30595: GO 30609
// Say ( Cyrus , D9b-Cyrus-1 ) else
30597: LD_EXP 45
30601: PPUSH
30602: LD_STRING D9b-Cyrus-1
30604: PPUSH
30605: CALL_OW 88
30609: GO 30665
// if pom > 0 then
30611: LD_LOC 51
30615: PUSH
30616: LD_INT 0
30618: GREATER
30619: IFFALSE 30665
// if VI_O_GRANATECH then
30621: LD_EXP 82
30625: IFFALSE 30653
// begin Say ( pom , D9a-Sol1-1 ) ;
30627: LD_LOC 51
30631: PPUSH
30632: LD_STRING D9a-Sol1-1
30634: PPUSH
30635: CALL_OW 88
// Say ( JMM , D9a-JMM-1 ) ;
30639: LD_EXP 40
30643: PPUSH
30644: LD_STRING D9a-JMM-1
30646: PPUSH
30647: CALL_OW 88
// end else
30651: GO 30665
// Say ( pom , D9b-Sol1-1 ) ;
30653: LD_LOC 51
30657: PPUSH
30658: LD_STRING D9b-Sol1-1
30660: PPUSH
30661: CALL_OW 88
// if GetTech ( tech_LasSight , You ) = state_researched then
30665: LD_INT 12
30667: PPUSH
30668: LD_EXP 3
30672: PPUSH
30673: CALL_OW 321
30677: PUSH
30678: LD_INT 2
30680: EQUAL
30681: IFFALSE 30697
// Say ( JMM , D9c-JMM-1a ) else
30683: LD_EXP 40
30687: PPUSH
30688: LD_STRING D9c-JMM-1a
30690: PPUSH
30691: CALL_OW 88
30695: GO 30709
// Say ( JMM , D9c-JMM-1 ) ;
30697: LD_EXP 40
30701: PPUSH
30702: LD_STRING D9c-JMM-1
30704: PPUSH
30705: CALL_OW 88
// DialogueOff ;
30709: CALL_OW 7
// end else
30713: GO 30716
// enable ;
30715: ENABLE
// end ;
30716: PPOPN 1
30718: END
// export function powell_kecy ; begin
30719: LD_INT 0
30721: PPUSH
// DialogueOn ;
30722: CALL_OW 6
// SayRadio ( Powell , D6b-Pow-1 ) ;
30726: LD_EXP 47
30730: PPUSH
30731: LD_STRING D6b-Pow-1
30733: PPUSH
30734: CALL_OW 94
// Wait ( 0 0$5 ) ;
30738: LD_INT 175
30740: PPUSH
30741: CALL_OW 67
// DialogueOff ;
30745: CALL_OW 7
// end ;
30749: LD_VAR 0 1
30753: RET
// every 0 0$3 trigger Dial >= 5 do var arm ;
30754: LD_EXP 38
30758: PUSH
30759: LD_INT 5
30761: GREATEREQUAL
30762: IFFALSE 31048
30764: GO 30766
30766: DISABLE
30767: LD_INT 0
30769: PPUSH
// begin DialogueOn ;
30770: CALL_OW 6
// while not IsOK ( JMM ) do
30774: LD_EXP 40
30778: PPUSH
30779: CALL_OW 302
30783: NOT
30784: IFFALSE 30795
// wait ( 0 0$1 ) ;
30786: LD_INT 35
30788: PPUSH
30789: CALL_OW 67
30793: GO 30774
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
30795: LD_ADDR_LOC 51
30799: PUSH
30800: LD_INT 1
30802: PPUSH
30803: LD_INT 1
30805: PPUSH
30806: LD_EXP 40
30810: PUSH
30811: EMPTY
30812: LIST
30813: PPUSH
30814: CALL 31589 0 3
30818: ST_TO_ADDR
// arm = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_or , [ f_btype , b_barracks ] , [ f_btype , b_armoury ] ] ] ) ;
30819: LD_ADDR_VAR 0 1
30823: PUSH
30824: LD_INT 22
30826: PUSH
30827: LD_EXP 1
30831: PUSH
30832: EMPTY
30833: LIST
30834: LIST
30835: PUSH
30836: LD_INT 2
30838: PUSH
30839: LD_INT 30
30841: PUSH
30842: LD_INT 5
30844: PUSH
30845: EMPTY
30846: LIST
30847: LIST
30848: PUSH
30849: LD_INT 30
30851: PUSH
30852: LD_INT 4
30854: PUSH
30855: EMPTY
30856: LIST
30857: LIST
30858: PUSH
30859: EMPTY
30860: LIST
30861: LIST
30862: LIST
30863: PUSH
30864: EMPTY
30865: LIST
30866: LIST
30867: PPUSH
30868: CALL_OW 69
30872: ST_TO_ADDR
// if pom > 1 and arm > 0 then
30873: LD_LOC 51
30877: PUSH
30878: LD_INT 1
30880: GREATER
30881: PUSH
30882: LD_VAR 0 1
30886: PUSH
30887: LD_INT 0
30889: GREATER
30890: AND
30891: IFFALSE 30987
// begin Say ( pom [ 1 ] , D8-Sol1-1 ) ;
30893: LD_LOC 51
30897: PUSH
30898: LD_INT 1
30900: ARRAY
30901: PPUSH
30902: LD_STRING D8-Sol1-1
30904: PPUSH
30905: CALL_OW 88
// pom1 = GetPeople ( sex_male , class_scientistic , [ JMM , pom [ 1 ] ] ) ;
30909: LD_ADDR_LOC 52
30913: PUSH
30914: LD_INT 1
30916: PPUSH
30917: LD_INT 4
30919: PPUSH
30920: LD_EXP 40
30924: PUSH
30925: LD_LOC 51
30929: PUSH
30930: LD_INT 1
30932: ARRAY
30933: PUSH
30934: EMPTY
30935: LIST
30936: LIST
30937: PPUSH
30938: CALL 31589 0 3
30942: ST_TO_ADDR
// if pom1 = 0 then
30943: LD_LOC 52
30947: PUSH
30948: LD_INT 0
30950: EQUAL
30951: IFFALSE 30971
// Say ( pom [ 1 ] , D8-Sci1-1 ) else
30953: LD_LOC 51
30957: PUSH
30958: LD_INT 1
30960: ARRAY
30961: PPUSH
30962: LD_STRING D8-Sci1-1
30964: PPUSH
30965: CALL_OW 88
30969: GO 30987
// Say ( pom1 [ 1 ] , D8-Sci1-1 ) ;
30971: LD_LOC 52
30975: PUSH
30976: LD_INT 1
30978: ARRAY
30979: PPUSH
30980: LD_STRING D8-Sci1-1
30982: PPUSH
30983: CALL_OW 88
// end ; Say ( JMM , D8-JMM-1 ) ;
30987: LD_EXP 40
30991: PPUSH
30992: LD_STRING D8-JMM-1
30994: PPUSH
30995: CALL_OW 88
// DialogueOff ;
30999: CALL_OW 7
// ChangeMissionObjectives ( M4 ) ;
31003: LD_STRING M4
31005: PPUSH
31006: CALL_OW 337
// wait ( 0 0$10 ) ;
31010: LD_INT 350
31012: PPUSH
31013: CALL_OW 67
// if IsOK ( Gary ) then
31017: LD_EXP 42
31021: PPUSH
31022: CALL_OW 302
31026: IFFALSE 31040
// Say ( Gary , D8a-Gary-1 ) ;
31028: LD_EXP 42
31032: PPUSH
31033: LD_STRING D8a-Gary-1
31035: PPUSH
31036: CALL_OW 88
// Dial := 6 ;
31040: LD_ADDR_EXP 38
31044: PUSH
31045: LD_INT 6
31047: ST_TO_ADDR
// end ;
31048: PPOPN 1
31050: END
// every 0 0$5 trigger Dial >= 6 do
31051: LD_EXP 38
31055: PUSH
31056: LD_INT 6
31058: GREATEREQUAL
31059: IFFALSE 31551
31061: GO 31063
31063: DISABLE
// begin testfight ;
31064: CALL 31552 0 0
// pom1 = false ;
31068: LD_ADDR_LOC 52
31072: PUSH
31073: LD_INT 0
31075: ST_TO_ADDR
// for i in Am_units do
31076: LD_ADDR_LOC 50
31080: PUSH
31081: LD_EXP 54
31085: PUSH
31086: FOR_IN
31087: IFFALSE 31141
// begin pom = Attacks ( i ) ;
31089: LD_ADDR_LOC 51
31093: PUSH
31094: LD_LOC 50
31098: PPUSH
31099: CALL_OW 320
31103: ST_TO_ADDR
// if pom <> 0 then
31104: LD_LOC 51
31108: PUSH
31109: LD_INT 0
31111: NONEQUAL
31112: IFFALSE 31139
// if Getside ( pom ) = Arabi then
31114: LD_LOC 51
31118: PPUSH
31119: CALL_OW 255
31123: PUSH
31124: LD_EXP 1
31128: EQUAL
31129: IFFALSE 31139
// pom1 = true ;
31131: LD_ADDR_LOC 52
31135: PUSH
31136: LD_INT 1
31138: ST_TO_ADDR
// end ;
31139: GO 31086
31141: POP
31142: POP
// if pom1 then
31143: LD_LOC 52
31147: IFFALSE 31152
// enable else
31149: ENABLE
31150: GO 31551
// if IsOK ( Khattam ) then
31152: LD_EXP 43
31156: PPUSH
31157: CALL_OW 302
31161: IFFALSE 31551
// begin DialogueOn ;
31163: CALL_OW 6
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
31167: LD_ADDR_LOC 51
31171: PUSH
31172: LD_INT 22
31174: PUSH
31175: LD_EXP 3
31179: PUSH
31180: EMPTY
31181: LIST
31182: LIST
31183: PUSH
31184: LD_INT 1
31186: PUSH
31187: EMPTY
31188: LIST
31189: PUSH
31190: LD_INT 21
31192: PUSH
31193: LD_INT 1
31195: PUSH
31196: EMPTY
31197: LIST
31198: LIST
31199: PUSH
31200: EMPTY
31201: LIST
31202: LIST
31203: LIST
31204: PPUSH
31205: CALL_OW 69
31209: ST_TO_ADDR
// pom = pom diff UnitFilter ( pom , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_kamikaze ] , [ f_class , class_apeman_soldier ] ] ) ;
31210: LD_ADDR_LOC 51
31214: PUSH
31215: LD_LOC 51
31219: PUSH
31220: LD_LOC 51
31224: PPUSH
31225: LD_INT 2
31227: PUSH
31228: LD_INT 25
31230: PUSH
31231: LD_INT 12
31233: PUSH
31234: EMPTY
31235: LIST
31236: LIST
31237: PUSH
31238: LD_INT 25
31240: PUSH
31241: LD_INT 16
31243: PUSH
31244: EMPTY
31245: LIST
31246: LIST
31247: PUSH
31248: LD_INT 25
31250: PUSH
31251: LD_INT 17
31253: PUSH
31254: EMPTY
31255: LIST
31256: LIST
31257: PUSH
31258: LD_INT 25
31260: PUSH
31261: LD_INT 15
31263: PUSH
31264: EMPTY
31265: LIST
31266: LIST
31267: PUSH
31268: EMPTY
31269: LIST
31270: LIST
31271: LIST
31272: LIST
31273: LIST
31274: PPUSH
31275: CALL_OW 72
31279: DIFF
31280: ST_TO_ADDR
// if pom < 2 then
31281: LD_LOC 51
31285: PUSH
31286: LD_INT 2
31288: LESS
31289: IFFALSE 31293
// exit ;
31291: GO 31551
// if pom [ 1 ] = Khattam then
31293: LD_LOC 51
31297: PUSH
31298: LD_INT 1
31300: ARRAY
31301: PUSH
31302: LD_EXP 43
31306: EQUAL
31307: IFFALSE 31325
// pom = pom [ 2 ] else
31309: LD_ADDR_LOC 51
31313: PUSH
31314: LD_LOC 51
31318: PUSH
31319: LD_INT 2
31321: ARRAY
31322: ST_TO_ADDR
31323: GO 31339
// pom = pom [ 1 ] ;
31325: LD_ADDR_LOC 51
31329: PUSH
31330: LD_LOC 51
31334: PUSH
31335: LD_INT 1
31337: ARRAY
31338: ST_TO_ADDR
// if GetSex ( pom ) = sex_male then
31339: LD_LOC 51
31343: PPUSH
31344: CALL_OW 258
31348: PUSH
31349: LD_INT 1
31351: EQUAL
31352: IFFALSE 31368
// Say ( pom , D8b-Sol1-1 ) else
31354: LD_LOC 51
31358: PPUSH
31359: LD_STRING D8b-Sol1-1
31361: PPUSH
31362: CALL_OW 88
31366: GO 31380
// Say ( pom , D8b-FSol1-1 ) ;
31368: LD_LOC 51
31372: PPUSH
31373: LD_STRING D8b-FSol1-1
31375: PPUSH
31376: CALL_OW 88
// Say ( Khattam , D8b-Khat-1 ) ;
31380: LD_EXP 43
31384: PPUSH
31385: LD_STRING D8b-Khat-1
31387: PPUSH
31388: CALL_OW 88
// if GetSex ( pom ) = sex_male then
31392: LD_LOC 51
31396: PPUSH
31397: CALL_OW 258
31401: PUSH
31402: LD_INT 1
31404: EQUAL
31405: IFFALSE 31421
// Say ( pom , D8b-Sol1-2 ) else
31407: LD_LOC 51
31411: PPUSH
31412: LD_STRING D8b-Sol1-2
31414: PPUSH
31415: CALL_OW 88
31419: GO 31433
// Say ( pom , D8b-FSol1-2 ) ;
31421: LD_LOC 51
31425: PPUSH
31426: LD_STRING D8b-FSol1-2
31428: PPUSH
31429: CALL_OW 88
// Say ( Khattam , D8b-Khat-2 ) ;
31433: LD_EXP 43
31437: PPUSH
31438: LD_STRING D8b-Khat-2
31440: PPUSH
31441: CALL_OW 88
// if GetSex ( pom ) = sex_male then
31445: LD_LOC 51
31449: PPUSH
31450: CALL_OW 258
31454: PUSH
31455: LD_INT 1
31457: EQUAL
31458: IFFALSE 31474
// Say ( pom , D8b-Sol1-3 ) else
31460: LD_LOC 51
31464: PPUSH
31465: LD_STRING D8b-Sol1-3
31467: PPUSH
31468: CALL_OW 88
31472: GO 31486
// Say ( pom , D8b-FSol1-3 ) ;
31474: LD_LOC 51
31478: PPUSH
31479: LD_STRING D8b-FSol1-3
31481: PPUSH
31482: CALL_OW 88
// Say ( Khattam , D8b-Khat-3 ) ;
31486: LD_EXP 43
31490: PPUSH
31491: LD_STRING D8b-Khat-3
31493: PPUSH
31494: CALL_OW 88
// if GetSex ( pom ) = sex_male then
31498: LD_LOC 51
31502: PPUSH
31503: CALL_OW 258
31507: PUSH
31508: LD_INT 1
31510: EQUAL
31511: IFFALSE 31527
// Say ( pom , D8b-Sol1-4 ) else
31513: LD_LOC 51
31517: PPUSH
31518: LD_STRING D8b-Sol1-4
31520: PPUSH
31521: CALL_OW 88
31525: GO 31539
// Say ( pom , D8b-FSol1-4 ) ;
31527: LD_LOC 51
31531: PPUSH
31532: LD_STRING D8b-FSol1-4
31534: PPUSH
31535: CALL_OW 88
// DialogueOff ;
31539: CALL_OW 7
// KHATTAM_PADA = true ;
31543: LD_ADDR_EXP 56
31547: PUSH
31548: LD_INT 1
31550: ST_TO_ADDR
// end ; end ;
31551: END
// function testfight ; begin
31552: LD_INT 0
31554: PPUSH
// while InBattle ( [ You , Rusi ] ) do
31555: LD_EXP 3
31559: PUSH
31560: LD_EXP 2
31564: PUSH
31565: EMPTY
31566: LIST
31567: LIST
31568: PPUSH
31569: CALL_OW 463
31573: IFFALSE 31584
// wait ( 0 0$0.5 ) ;
31575: LD_INT 18
31577: PPUSH
31578: CALL_OW 67
31582: GO 31555
// end ;
31584: LD_VAR 0 1
31588: RET
// function GetPeople ( sex , povolani , diffseznam ) ; var pom5 ; begin
31589: LD_INT 0
31591: PPUSH
31592: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
31593: LD_ADDR_LOC 52
31597: PUSH
31598: LD_INT 22
31600: PUSH
31601: LD_EXP 3
31605: PUSH
31606: EMPTY
31607: LIST
31608: LIST
31609: PUSH
31610: LD_INT 25
31612: PUSH
31613: LD_INT 4
31615: PUSH
31616: EMPTY
31617: LIST
31618: LIST
31619: PUSH
31620: LD_INT 26
31622: PUSH
31623: LD_VAR 0 1
31627: PUSH
31628: EMPTY
31629: LIST
31630: LIST
31631: PUSH
31632: EMPTY
31633: LIST
31634: LIST
31635: LIST
31636: PPUSH
31637: CALL_OW 69
31641: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
31642: LD_ADDR_LOC 53
31646: PUSH
31647: LD_INT 22
31649: PUSH
31650: LD_EXP 3
31654: PUSH
31655: EMPTY
31656: LIST
31657: LIST
31658: PUSH
31659: LD_INT 25
31661: PUSH
31662: LD_INT 3
31664: PUSH
31665: EMPTY
31666: LIST
31667: LIST
31668: PUSH
31669: LD_INT 26
31671: PUSH
31672: LD_VAR 0 1
31676: PUSH
31677: EMPTY
31678: LIST
31679: LIST
31680: PUSH
31681: EMPTY
31682: LIST
31683: LIST
31684: LIST
31685: PPUSH
31686: CALL_OW 69
31690: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
31691: LD_ADDR_LOC 54
31695: PUSH
31696: LD_INT 22
31698: PUSH
31699: LD_EXP 3
31703: PUSH
31704: EMPTY
31705: LIST
31706: LIST
31707: PUSH
31708: LD_INT 25
31710: PUSH
31711: LD_INT 2
31713: PUSH
31714: EMPTY
31715: LIST
31716: LIST
31717: PUSH
31718: LD_INT 26
31720: PUSH
31721: LD_VAR 0 1
31725: PUSH
31726: EMPTY
31727: LIST
31728: LIST
31729: PUSH
31730: EMPTY
31731: LIST
31732: LIST
31733: LIST
31734: PPUSH
31735: CALL_OW 69
31739: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
31740: LD_ADDR_LOC 55
31744: PUSH
31745: LD_INT 22
31747: PUSH
31748: LD_EXP 3
31752: PUSH
31753: EMPTY
31754: LIST
31755: LIST
31756: PUSH
31757: LD_INT 25
31759: PUSH
31760: LD_INT 1
31762: PUSH
31763: EMPTY
31764: LIST
31765: LIST
31766: PUSH
31767: LD_INT 26
31769: PUSH
31770: LD_VAR 0 1
31774: PUSH
31775: EMPTY
31776: LIST
31777: LIST
31778: PUSH
31779: EMPTY
31780: LIST
31781: LIST
31782: LIST
31783: PPUSH
31784: CALL_OW 69
31788: ST_TO_ADDR
// pom5 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_sniper ] , [ f_sex , sex ] ] ) ;
31789: LD_ADDR_VAR 0 5
31793: PUSH
31794: LD_INT 22
31796: PUSH
31797: LD_EXP 3
31801: PUSH
31802: EMPTY
31803: LIST
31804: LIST
31805: PUSH
31806: LD_INT 25
31808: PUSH
31809: LD_INT 5
31811: PUSH
31812: EMPTY
31813: LIST
31814: LIST
31815: PUSH
31816: LD_INT 26
31818: PUSH
31819: LD_VAR 0 1
31823: PUSH
31824: EMPTY
31825: LIST
31826: LIST
31827: PUSH
31828: EMPTY
31829: LIST
31830: LIST
31831: LIST
31832: PPUSH
31833: CALL_OW 69
31837: ST_TO_ADDR
// case povolani of class_scientistic :
31838: LD_VAR 0 2
31842: PUSH
31843: LD_INT 4
31845: DOUBLE
31846: EQUAL
31847: IFTRUE 31851
31849: GO 31864
31851: POP
// pom = pom1 ; class_mechanic :
31852: LD_ADDR_LOC 51
31856: PUSH
31857: LD_LOC 52
31861: ST_TO_ADDR
31862: GO 31928
31864: LD_INT 3
31866: DOUBLE
31867: EQUAL
31868: IFTRUE 31872
31870: GO 31885
31872: POP
// pom = pom2 ; class_engineer :
31873: LD_ADDR_LOC 51
31877: PUSH
31878: LD_LOC 53
31882: ST_TO_ADDR
31883: GO 31928
31885: LD_INT 2
31887: DOUBLE
31888: EQUAL
31889: IFTRUE 31893
31891: GO 31906
31893: POP
// pom = pom3 ; class_soldier :
31894: LD_ADDR_LOC 51
31898: PUSH
31899: LD_LOC 54
31903: ST_TO_ADDR
31904: GO 31928
31906: LD_INT 1
31908: DOUBLE
31909: EQUAL
31910: IFTRUE 31914
31912: GO 31927
31914: POP
// pom = pom4 ; end ;
31915: LD_ADDR_LOC 51
31919: PUSH
31920: LD_LOC 55
31924: ST_TO_ADDR
31925: GO 31928
31927: POP
// if povolani <> class_scientistic then
31928: LD_VAR 0 2
31932: PUSH
31933: LD_INT 4
31935: NONEQUAL
31936: IFFALSE 31954
// pom = pom ^ pom1 ;
31938: LD_ADDR_LOC 51
31942: PUSH
31943: LD_LOC 51
31947: PUSH
31948: LD_LOC 52
31952: ADD
31953: ST_TO_ADDR
// if povolani <> class_mechanic then
31954: LD_VAR 0 2
31958: PUSH
31959: LD_INT 3
31961: NONEQUAL
31962: IFFALSE 31980
// pom = pom ^ pom2 ;
31964: LD_ADDR_LOC 51
31968: PUSH
31969: LD_LOC 51
31973: PUSH
31974: LD_LOC 53
31978: ADD
31979: ST_TO_ADDR
// if povolani <> class_engineer then
31980: LD_VAR 0 2
31984: PUSH
31985: LD_INT 2
31987: NONEQUAL
31988: IFFALSE 32006
// pom = pom ^ pom3 ;
31990: LD_ADDR_LOC 51
31994: PUSH
31995: LD_LOC 51
31999: PUSH
32000: LD_LOC 54
32004: ADD
32005: ST_TO_ADDR
// if povolani <> class_soldier then
32006: LD_VAR 0 2
32010: PUSH
32011: LD_INT 1
32013: NONEQUAL
32014: IFFALSE 32032
// pom = pom ^ pom4 ;
32016: LD_ADDR_LOC 51
32020: PUSH
32021: LD_LOC 51
32025: PUSH
32026: LD_LOC 55
32030: ADD
32031: ST_TO_ADDR
// if povolani <> class_scientistic then
32032: LD_VAR 0 2
32036: PUSH
32037: LD_INT 4
32039: NONEQUAL
32040: IFFALSE 32058
// pom = pom ^ pom5 ;
32042: LD_ADDR_LOC 51
32046: PUSH
32047: LD_LOC 51
32051: PUSH
32052: LD_VAR 0 5
32056: ADD
32057: ST_TO_ADDR
// result := pom diff diffseznam ;
32058: LD_ADDR_VAR 0 4
32062: PUSH
32063: LD_LOC 51
32067: PUSH
32068: LD_VAR 0 3
32072: DIFF
32073: ST_TO_ADDR
// end ;
32074: LD_VAR 0 4
32078: RET
// export function uvidel_spontalni_teleportaci ; begin
32079: LD_INT 0
32081: PPUSH
// while not IsOK ( JMM ) do
32082: LD_EXP 40
32086: PPUSH
32087: CALL_OW 302
32091: NOT
32092: IFFALSE 32103
// wait ( 0 0$1 ) ;
32094: LD_INT 35
32096: PPUSH
32097: CALL_OW 67
32101: GO 32082
// DialogueOn ;
32103: CALL_OW 6
// if IsOK ( Cyrus ) then
32107: LD_EXP 45
32111: PPUSH
32112: CALL_OW 302
32116: IFFALSE 32130
// Say ( Cyrus , D10-Cyrus-1 ) ;
32118: LD_EXP 45
32122: PPUSH
32123: LD_STRING D10-Cyrus-1
32125: PPUSH
32126: CALL_OW 88
// Say ( JMM , D10-JMM-1 ) ;
32130: LD_EXP 40
32134: PPUSH
32135: LD_STRING D10-JMM-1
32137: PPUSH
32138: CALL_OW 88
// DialogueOff ;
32142: CALL_OW 7
// end ;
32146: LD_VAR 0 1
32150: RET
// every 0 0$6 trigger Arabi_utoci do var i ; var cont ;
32151: LD_EXP 28
32155: IFFALSE 32234
32157: GO 32159
32159: DISABLE
32160: LD_INT 0
32162: PPUSH
32163: PPUSH
// begin cont = false ;
32164: LD_ADDR_VAR 0 2
32168: PUSH
32169: LD_INT 0
32171: ST_TO_ADDR
// for i in arabsti_zradci_LIST do
32172: LD_ADDR_VAR 0 1
32176: PUSH
32177: LD_EXP 30
32181: PUSH
32182: FOR_IN
32183: IFFALSE 32206
// if IsLive ( i ) then
32185: LD_VAR 0 1
32189: PPUSH
32190: CALL_OW 300
32194: IFFALSE 32204
// cont = true ;
32196: LD_ADDR_VAR 0 2
32200: PUSH
32201: LD_INT 1
32203: ST_TO_ADDR
32204: GO 32182
32206: POP
32207: POP
// if cont then
32208: LD_VAR 0 2
32212: IFFALSE 32217
// enable else
32214: ENABLE
32215: GO 32234
// if UTEKLI_ARABI = 0 then
32217: LD_EXP 29
32221: PUSH
32222: LD_INT 0
32224: EQUAL
32225: IFFALSE 32234
// ChangeMissionObjectives ( M4a ) ;
32227: LD_STRING M4a
32229: PPUSH
32230: CALL_OW 337
// end ;
32234: PPOPN 2
32236: END
// every 0 0$6 trigger test_ukonceni_allowed do
32237: LD_LOC 62
32241: IFFALSE 32290
32243: GO 32245
32245: DISABLE
// begin if GetTech ( tech_AI , You ) = state_researched and GetTech ( tech_LasSight , You ) = state_researched then
32246: LD_INT 32
32248: PPUSH
32249: LD_EXP 3
32253: PPUSH
32254: CALL_OW 321
32258: PUSH
32259: LD_INT 2
32261: EQUAL
32262: PUSH
32263: LD_INT 12
32265: PPUSH
32266: LD_EXP 3
32270: PPUSH
32271: CALL_OW 321
32275: PUSH
32276: LD_INT 2
32278: EQUAL
32279: AND
32280: IFFALSE 32289
// Mission_end ( Ukonceni kdyz ma vynalezeno - dialogues 458 ) ;
32282: LD_STRING Ukonceni kdyz ma vynalezeno - dialogues 458
32284: PPUSH
32285: CALL 375 0 1
// enable ;
32289: ENABLE
// end ; end_of_file
32290: END
// export JMM ; export Joan_F ; export Gary ; export Khattam ; export Simms ; export Cyrus ; export Denis ; export Powell ; export Cornel ; export Ambase ; export Amlab ; export Amsiblab ; export Amelekt ; export COR_GO ; export Am_units ; export END_ATTACK ; export KHATTAM_PADA ; export Res ; var pom , pom1 , i ; var touchzone ; every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 0 do
32291: LD_INT 22
32293: PUSH
32294: LD_EXP 3
32298: PUSH
32299: EMPTY
32300: LIST
32301: LIST
32302: PUSH
32303: LD_INT 30
32305: PUSH
32306: LD_INT 0
32308: PUSH
32309: EMPTY
32310: LIST
32311: LIST
32312: PUSH
32313: EMPTY
32314: LIST
32315: LIST
32316: PPUSH
32317: CALL_OW 69
32321: PUSH
32322: LD_INT 0
32324: GREATER
32325: IFFALSE 32387
32327: GO 32329
32329: DISABLE
// begin Ambase := FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
32330: LD_ADDR_EXP 49
32334: PUSH
32335: LD_INT 22
32337: PUSH
32338: LD_EXP 3
32342: PUSH
32343: EMPTY
32344: LIST
32345: LIST
32346: PUSH
32347: LD_INT 1
32349: PUSH
32350: EMPTY
32351: LIST
32352: PUSH
32353: LD_INT 30
32355: PUSH
32356: LD_INT 0
32358: PUSH
32359: EMPTY
32360: LIST
32361: LIST
32362: PUSH
32363: EMPTY
32364: LIST
32365: LIST
32366: LIST
32367: PPUSH
32368: CALL_OW 69
32372: ST_TO_ADDR
// Ambase := Ambase [ 1 ] ;
32373: LD_ADDR_EXP 49
32377: PUSH
32378: LD_EXP 49
32382: PUSH
32383: LD_INT 1
32385: ARRAY
32386: ST_TO_ADDR
// end ;
32387: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_lab ] ] ) > 0 do
32388: LD_INT 22
32390: PUSH
32391: LD_EXP 3
32395: PUSH
32396: EMPTY
32397: LIST
32398: LIST
32399: PUSH
32400: LD_INT 1
32402: PUSH
32403: EMPTY
32404: LIST
32405: PUSH
32406: LD_INT 30
32408: PUSH
32409: LD_INT 6
32411: PUSH
32412: EMPTY
32413: LIST
32414: LIST
32415: PUSH
32416: EMPTY
32417: LIST
32418: LIST
32419: LIST
32420: PPUSH
32421: CALL_OW 69
32425: PUSH
32426: LD_INT 0
32428: GREATER
32429: IFFALSE 32491
32431: GO 32433
32433: DISABLE
// begin Amlab := FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_lab ] ] ) ;
32434: LD_ADDR_EXP 50
32438: PUSH
32439: LD_INT 22
32441: PUSH
32442: LD_EXP 3
32446: PUSH
32447: EMPTY
32448: LIST
32449: LIST
32450: PUSH
32451: LD_INT 1
32453: PUSH
32454: EMPTY
32455: LIST
32456: PUSH
32457: LD_INT 30
32459: PUSH
32460: LD_INT 6
32462: PUSH
32463: EMPTY
32464: LIST
32465: LIST
32466: PUSH
32467: EMPTY
32468: LIST
32469: LIST
32470: LIST
32471: PPUSH
32472: CALL_OW 69
32476: ST_TO_ADDR
// Amlab := Amlab [ 1 ] ;
32477: LD_ADDR_EXP 50
32481: PUSH
32482: LD_EXP 50
32486: PUSH
32487: LD_INT 1
32489: ARRAY
32490: ST_TO_ADDR
// end ;
32491: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_full ] , [ f_btype , b_lab_half ] ] ] ) > 0 do var je ;
32492: LD_INT 22
32494: PUSH
32495: LD_EXP 3
32499: PUSH
32500: EMPTY
32501: LIST
32502: LIST
32503: PUSH
32504: LD_INT 2
32506: PUSH
32507: LD_INT 30
32509: PUSH
32510: LD_INT 8
32512: PUSH
32513: EMPTY
32514: LIST
32515: LIST
32516: PUSH
32517: LD_INT 30
32519: PUSH
32520: LD_INT 7
32522: PUSH
32523: EMPTY
32524: LIST
32525: LIST
32526: PUSH
32527: EMPTY
32528: LIST
32529: LIST
32530: LIST
32531: PUSH
32532: EMPTY
32533: LIST
32534: LIST
32535: PPUSH
32536: CALL_OW 69
32540: PUSH
32541: LD_INT 0
32543: GREATER
32544: IFFALSE 32700
32546: GO 32548
32548: DISABLE
32549: LD_INT 0
32551: PPUSH
// begin je = 0 ;
32552: LD_ADDR_VAR 0 1
32556: PUSH
32557: LD_INT 0
32559: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_full ] , [ f_btype , b_lab_half ] ] ] ) ;
32560: LD_ADDR_LOC 63
32564: PUSH
32565: LD_INT 22
32567: PUSH
32568: LD_EXP 3
32572: PUSH
32573: EMPTY
32574: LIST
32575: LIST
32576: PUSH
32577: LD_INT 2
32579: PUSH
32580: LD_INT 30
32582: PUSH
32583: LD_INT 8
32585: PUSH
32586: EMPTY
32587: LIST
32588: LIST
32589: PUSH
32590: LD_INT 30
32592: PUSH
32593: LD_INT 7
32595: PUSH
32596: EMPTY
32597: LIST
32598: LIST
32599: PUSH
32600: EMPTY
32601: LIST
32602: LIST
32603: LIST
32604: PUSH
32605: EMPTY
32606: LIST
32607: LIST
32608: PPUSH
32609: CALL_OW 69
32613: ST_TO_ADDR
// for i in pom do
32614: LD_ADDR_LOC 65
32618: PUSH
32619: LD_LOC 63
32623: PUSH
32624: FOR_IN
32625: IFFALSE 32675
// if GetLabKind ( i , 1 ) = b_lab_siberium or GetLabKind ( i , 2 ) = b_lab_siberium then
32627: LD_LOC 65
32631: PPUSH
32632: LD_INT 1
32634: PPUSH
32635: CALL_OW 268
32639: PUSH
32640: LD_INT 11
32642: EQUAL
32643: PUSH
32644: LD_LOC 65
32648: PPUSH
32649: LD_INT 2
32651: PPUSH
32652: CALL_OW 268
32656: PUSH
32657: LD_INT 11
32659: EQUAL
32660: OR
32661: IFFALSE 32673
// je = i ;
32663: LD_ADDR_VAR 0 1
32667: PUSH
32668: LD_LOC 65
32672: ST_TO_ADDR
32673: GO 32624
32675: POP
32676: POP
// if je <> 0 then
32677: LD_VAR 0 1
32681: PUSH
32682: LD_INT 0
32684: NONEQUAL
32685: IFFALSE 32699
// Amsiblab := je else
32687: LD_ADDR_EXP 51
32691: PUSH
32692: LD_VAR 0 1
32696: ST_TO_ADDR
32697: GO 32700
// enable ;
32699: ENABLE
// end ;
32700: PPOPN 1
32702: END
// every 1 1$0 trigger COR_GO = 1 do
32703: LD_EXP 53
32707: PUSH
32708: LD_INT 1
32710: EQUAL
32711: IFFALSE 32749
32713: GO 32715
32715: DISABLE
// begin if ZIJE_MIKHAIL then
32716: LD_EXP 83
32720: IFFALSE 32749
// begin create_Cornel ;
32722: CALL 5986 0 0
// ComMoveXY ( Cornel , 110 , 35 ) ;
32726: LD_EXP 48
32730: PPUSH
32731: LD_INT 110
32733: PPUSH
32734: LD_INT 35
32736: PPUSH
32737: CALL_OW 111
// COR_GO = 2 ;
32741: LD_ADDR_EXP 53
32745: PUSH
32746: LD_INT 2
32748: ST_TO_ADDR
// end ; end ;
32749: END
// every 0 0$5 do
32750: GO 32752
32752: DISABLE
// begin Am_units = FilterAllUnits ( [ [ f_side , You ] ] ) ;
32753: LD_ADDR_EXP 54
32757: PUSH
32758: LD_INT 22
32760: PUSH
32761: LD_EXP 3
32765: PUSH
32766: EMPTY
32767: LIST
32768: LIST
32769: PUSH
32770: EMPTY
32771: LIST
32772: PPUSH
32773: CALL_OW 69
32777: ST_TO_ADDR
// enable ;
32778: ENABLE
// end ;
32779: END
// every 0 0$2 do
32780: GO 32782
32782: DISABLE
// begin for i in Am_units do
32783: LD_ADDR_LOC 65
32787: PUSH
32788: LD_EXP 54
32792: PUSH
32793: FOR_IN
32794: IFFALSE 32848
// begin pom = Attacks ( i ) ;
32796: LD_ADDR_LOC 63
32800: PUSH
32801: LD_LOC 65
32805: PPUSH
32806: CALL_OW 320
32810: ST_TO_ADDR
// if pom <> 0 then
32811: LD_LOC 63
32815: PUSH
32816: LD_INT 0
32818: NONEQUAL
32819: IFFALSE 32846
// if Getside ( pom ) = Arabi then
32821: LD_LOC 63
32825: PPUSH
32826: CALL_OW 255
32830: PUSH
32831: LD_EXP 1
32835: EQUAL
32836: IFFALSE 32846
// END_ATTACK = true ;
32838: LD_ADDR_EXP 55
32842: PUSH
32843: LD_INT 1
32845: ST_TO_ADDR
// end ;
32846: GO 32793
32848: POP
32849: POP
// enable ;
32850: ENABLE
// end ;
32851: END
// every 0 0$1 trigger KHATTAM_PADA do
32852: LD_EXP 56
32856: IFFALSE 32961
32858: GO 32860
32860: DISABLE
// begin while IsInUnit ( Khattam ) do
32861: LD_EXP 43
32865: PPUSH
32866: CALL_OW 310
32870: IFFALSE 32899
// begin ComExitBuilding ( Khattam ) ;
32872: LD_EXP 43
32876: PPUSH
32877: CALL_OW 122
// AddComExitVehicle ( Khattam ) ;
32881: LD_EXP 43
32885: PPUSH
32886: CALL_OW 181
// wait ( 0 0$1 ) ;
32890: LD_INT 35
32892: PPUSH
32893: CALL_OW 67
// end ;
32897: GO 32861
// SetSide ( Khattam , SideKhat ) ;
32899: LD_EXP 43
32903: PPUSH
32904: LD_EXP 8
32908: PPUSH
32909: CALL_OW 235
// ComMoveXY ( Khattam , 128 , 19 ) ;
32913: LD_EXP 43
32917: PPUSH
32918: LD_INT 128
32920: PPUSH
32921: LD_INT 19
32923: PPUSH
32924: CALL_OW 111
// while not IsInArea ( Khattam , KHOUT ) do
32928: LD_EXP 43
32932: PPUSH
32933: LD_INT 24
32935: PPUSH
32936: CALL_OW 308
32940: NOT
32941: IFFALSE 32952
// wait ( 0 0$1 ) ;
32943: LD_INT 35
32945: PPUSH
32946: CALL_OW 67
32950: GO 32928
// RemoveUnit ( Khattam ) ;
32952: LD_EXP 43
32956: PPUSH
32957: CALL_OW 64
// end ;
32961: END
// every 0 0$7 do
32962: GO 32964
32964: DISABLE
// begin if not IsOK ( Ambase ) then
32965: LD_EXP 49
32969: PPUSH
32970: CALL_OW 302
32974: NOT
32975: IFFALSE 33044
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
32977: LD_ADDR_LOC 63
32981: PUSH
32982: LD_INT 22
32984: PUSH
32985: LD_EXP 3
32989: PUSH
32990: EMPTY
32991: LIST
32992: LIST
32993: PUSH
32994: LD_INT 1
32996: PUSH
32997: EMPTY
32998: LIST
32999: PUSH
33000: LD_INT 30
33002: PUSH
33003: LD_INT 0
33005: PUSH
33006: EMPTY
33007: LIST
33008: LIST
33009: PUSH
33010: EMPTY
33011: LIST
33012: LIST
33013: LIST
33014: PPUSH
33015: CALL_OW 69
33019: ST_TO_ADDR
// if pom > 0 then
33020: LD_LOC 63
33024: PUSH
33025: LD_INT 0
33027: GREATER
33028: IFFALSE 33044
// Ambase = pom [ 1 ] ;
33030: LD_ADDR_EXP 49
33034: PUSH
33035: LD_LOC 63
33039: PUSH
33040: LD_INT 1
33042: ARRAY
33043: ST_TO_ADDR
// end ; enable ;
33044: ENABLE
// end ;
33045: END
// every 0 0$3 do
33046: GO 33048
33048: DISABLE
// begin pom = FilterUnitsInArea ( Abase , [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
33049: LD_ADDR_LOC 63
33053: PUSH
33054: LD_INT 2
33056: PPUSH
33057: LD_INT 22
33059: PUSH
33060: LD_EXP 3
33064: PUSH
33065: EMPTY
33066: LIST
33067: LIST
33068: PUSH
33069: LD_INT 1
33071: PUSH
33072: EMPTY
33073: LIST
33074: PUSH
33075: LD_INT 21
33077: PUSH
33078: LD_INT 3
33080: PUSH
33081: EMPTY
33082: LIST
33083: LIST
33084: PUSH
33085: EMPTY
33086: LIST
33087: LIST
33088: LIST
33089: PPUSH
33090: CALL_OW 70
33094: ST_TO_ADDR
// for i in pom do
33095: LD_ADDR_LOC 65
33099: PUSH
33100: LD_LOC 63
33104: PUSH
33105: FOR_IN
33106: IFFALSE 33148
// if GetX ( i ) = 70 and GetY ( i ) = 17 then
33108: LD_LOC 65
33112: PPUSH
33113: CALL_OW 250
33117: PUSH
33118: LD_INT 70
33120: EQUAL
33121: PUSH
33122: LD_LOC 65
33126: PPUSH
33127: CALL_OW 251
33131: PUSH
33132: LD_INT 17
33134: EQUAL
33135: AND
33136: IFFALSE 33146
// END_ATTACK = true ;
33138: LD_ADDR_EXP 55
33142: PUSH
33143: LD_INT 1
33145: ST_TO_ADDR
33146: GO 33105
33148: POP
33149: POP
// enable ;
33150: ENABLE
// end ;
33151: END
// every 0 0$1 do var i , pom ; var zabrano ;
33152: GO 33154
33154: DISABLE
33155: LD_INT 0
33157: PPUSH
33158: PPUSH
33159: PPUSH
// begin zabrano = false ;
33160: LD_ADDR_VAR 0 3
33164: PUSH
33165: LD_INT 0
33167: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_barracks ] ] ) ;
33168: LD_ADDR_VAR 0 2
33172: PUSH
33173: LD_INT 22
33175: PUSH
33176: LD_EXP 3
33180: PUSH
33181: EMPTY
33182: LIST
33183: LIST
33184: PUSH
33185: LD_INT 30
33187: PUSH
33188: LD_INT 5
33190: PUSH
33191: EMPTY
33192: LIST
33193: LIST
33194: PUSH
33195: EMPTY
33196: LIST
33197: LIST
33198: PPUSH
33199: CALL_OW 69
33203: ST_TO_ADDR
// for i in pom do
33204: LD_ADDR_VAR 0 1
33208: PUSH
33209: LD_VAR 0 2
33213: PUSH
33214: FOR_IN
33215: IFFALSE 33242
// if GetNation ( i ) = nation_arabian then
33217: LD_VAR 0 1
33221: PPUSH
33222: CALL_OW 248
33226: PUSH
33227: LD_INT 2
33229: EQUAL
33230: IFFALSE 33240
// zabrano = true ;
33232: LD_ADDR_VAR 0 3
33236: PUSH
33237: LD_INT 1
33239: ST_TO_ADDR
33240: GO 33214
33242: POP
33243: POP
// if zabrano then
33244: LD_VAR 0 3
33248: IFFALSE 33265
// SetTech ( tech_Mortar , You , state_researched ) ;
33250: LD_INT 41
33252: PPUSH
33253: LD_EXP 3
33257: PPUSH
33258: LD_INT 2
33260: PPUSH
33261: CALL_OW 322
// enable ;
33265: ENABLE
// end ; end_of_file
33266: PPOPN 3
33268: END
// export timerusi ; export levelrusi ; export chassisrusi ; export zbranrusi ; export farusi ; export pocaut ; export wait2 ; export kutoku ; export ntanku ; export wait2new ; export rusi_zivoty ; export cekani_zradnych_arabu_pred_utokem ; export cas_druzi_arabaci ; export zbrane_na_turrety1 ; export zbrane_na_turrety2 ; export zbrane_na_turrety3 ; export cas_na_cekani_pred_nultym_utokem ; export wait3new ; export wait_bazooka_attack ; export wait_spec_baz ; export pocet_zivotu_utok_po_utoku ; export arabsky_utok_prichod ; export total_final ; export VIDEL_MIKHAILA ; export VI_O_GRANATECH ; export ZIJE_MIKHAIL ; export MNOZSTVI_SIBERITU ; export function SetDificultyLevels ; begin
33269: LD_INT 0
33271: PPUSH
// timerusi := [ 5 5$0 , 3 3$0 , 3 3$00 ] ;
33272: LD_ADDR_EXP 58
33276: PUSH
33277: LD_INT 10500
33279: PUSH
33280: LD_INT 6300
33282: PUSH
33283: LD_INT 6300
33285: PUSH
33286: EMPTY
33287: LIST
33288: LIST
33289: LIST
33290: ST_TO_ADDR
// levelrusi := [ 4 , 5 , 6 ] ;
33291: LD_ADDR_EXP 59
33295: PUSH
33296: LD_INT 4
33298: PUSH
33299: LD_INT 5
33301: PUSH
33302: LD_INT 6
33304: PUSH
33305: EMPTY
33306: LIST
33307: LIST
33308: LIST
33309: ST_TO_ADDR
// chassisrusi := [ ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] ;
33310: LD_ADDR_EXP 60
33314: PUSH
33315: LD_INT 23
33317: PUSH
33318: LD_INT 22
33320: PUSH
33321: LD_INT 24
33323: PUSH
33324: EMPTY
33325: LIST
33326: LIST
33327: LIST
33328: ST_TO_ADDR
// zbranrusi := [ ru_gatling_gun , ru_gun , ru_heavy_gun ] ;
33329: LD_ADDR_EXP 61
33333: PUSH
33334: LD_INT 43
33336: PUSH
33337: LD_INT 44
33339: PUSH
33340: LD_INT 46
33342: PUSH
33343: EMPTY
33344: LIST
33345: LIST
33346: LIST
33347: ST_TO_ADDR
// pocaut = [ 1 , 2 , 2 ] ;
33348: LD_ADDR_EXP 63
33352: PUSH
33353: LD_INT 1
33355: PUSH
33356: LD_INT 2
33358: PUSH
33359: LD_INT 2
33361: PUSH
33362: EMPTY
33363: LIST
33364: LIST
33365: LIST
33366: ST_TO_ADDR
// wait2 = [ 3 3$0 , 2 2$0 , 2 2$0 ] ;
33367: LD_ADDR_EXP 64
33371: PUSH
33372: LD_INT 6300
33374: PUSH
33375: LD_INT 4200
33377: PUSH
33378: LD_INT 4200
33380: PUSH
33381: EMPTY
33382: LIST
33383: LIST
33384: LIST
33385: ST_TO_ADDR
// kutoku = [ 3 3$0 , 2 2$0 , 1 1$0 ] ;
33386: LD_ADDR_EXP 65
33390: PUSH
33391: LD_INT 6300
33393: PUSH
33394: LD_INT 4200
33396: PUSH
33397: LD_INT 2100
33399: PUSH
33400: EMPTY
33401: LIST
33402: LIST
33403: LIST
33404: ST_TO_ADDR
// ntanku = [ 1 , 2 , 3 ] ;
33405: LD_ADDR_EXP 66
33409: PUSH
33410: LD_INT 1
33412: PUSH
33413: LD_INT 2
33415: PUSH
33416: LD_INT 3
33418: PUSH
33419: EMPTY
33420: LIST
33421: LIST
33422: LIST
33423: ST_TO_ADDR
// rusi_zivoty = [ 600 , 800 , 1000 ] ;
33424: LD_ADDR_EXP 68
33428: PUSH
33429: LD_INT 600
33431: PUSH
33432: LD_INT 800
33434: PUSH
33435: LD_INT 1000
33437: PUSH
33438: EMPTY
33439: LIST
33440: LIST
33441: LIST
33442: ST_TO_ADDR
// cekani_zradnych_arabu_pred_utokem = [ 0 0$15 , 0 0$7 , 0 0$3 ] ;
33443: LD_ADDR_EXP 69
33447: PUSH
33448: LD_INT 525
33450: PUSH
33451: LD_INT 245
33453: PUSH
33454: LD_INT 105
33456: PUSH
33457: EMPTY
33458: LIST
33459: LIST
33460: LIST
33461: ST_TO_ADDR
// cas_druzi_arabaci = [ 0 0$20 , 0 0$10 , 0 0$3 ] ;
33462: LD_ADDR_EXP 70
33466: PUSH
33467: LD_INT 700
33469: PUSH
33470: LD_INT 350
33472: PUSH
33473: LD_INT 105
33475: PUSH
33476: EMPTY
33477: LIST
33478: LIST
33479: LIST
33480: ST_TO_ADDR
// zbrane_na_turrety1 = [ ru_heavy_machine_gun , ru_gatling_gun , ru_gatling_gun ] ;
33481: LD_ADDR_EXP 71
33485: PUSH
33486: LD_INT 42
33488: PUSH
33489: LD_INT 43
33491: PUSH
33492: LD_INT 43
33494: PUSH
33495: EMPTY
33496: LIST
33497: LIST
33498: LIST
33499: ST_TO_ADDR
// zbrane_na_turrety2 = [ ru_gatling_gun , ru_gatling_gun , ru_gatling_gun ] ;
33500: LD_ADDR_EXP 72
33504: PUSH
33505: LD_INT 43
33507: PUSH
33508: LD_INT 43
33510: PUSH
33511: LD_INT 43
33513: PUSH
33514: EMPTY
33515: LIST
33516: LIST
33517: LIST
33518: ST_TO_ADDR
// zbrane_na_turrety3 = [ ru_gatling_gun , ru_gun , ru_heavy_gun ] ;
33519: LD_ADDR_EXP 73
33523: PUSH
33524: LD_INT 43
33526: PUSH
33527: LD_INT 44
33529: PUSH
33530: LD_INT 46
33532: PUSH
33533: EMPTY
33534: LIST
33535: LIST
33536: LIST
33537: ST_TO_ADDR
// pocet_zivotu_utok_po_utoku = [ 600 , 800 , 1000 ] ;
33538: LD_ADDR_EXP 78
33542: PUSH
33543: LD_INT 600
33545: PUSH
33546: LD_INT 800
33548: PUSH
33549: LD_INT 1000
33551: PUSH
33552: EMPTY
33553: LIST
33554: LIST
33555: LIST
33556: ST_TO_ADDR
// arabsky_utok_prichod = [ 30 30$0 , 20 20$0 , 15 15$0 ] ;
33557: LD_ADDR_EXP 79
33561: PUSH
33562: LD_INT 63000
33564: PUSH
33565: LD_INT 42000
33567: PUSH
33568: LD_INT 31500
33570: PUSH
33571: EMPTY
33572: LIST
33573: LIST
33574: LIST
33575: ST_TO_ADDR
// total_final = [ 10 10$0 , 8 8$0 , 5 5$0 ] ;
33576: LD_ADDR_EXP 80
33580: PUSH
33581: LD_INT 21000
33583: PUSH
33584: LD_INT 16800
33586: PUSH
33587: LD_INT 10500
33589: PUSH
33590: EMPTY
33591: LIST
33592: LIST
33593: LIST
33594: ST_TO_ADDR
// cas_na_cekani_pred_nultym_utokem = [ 1 1$00 , 0 0$20 , 0 0$0 ] ;
33595: LD_ADDR_EXP 74
33599: PUSH
33600: LD_INT 2100
33602: PUSH
33603: LD_INT 700
33605: PUSH
33606: LD_INT 0
33608: PUSH
33609: EMPTY
33610: LIST
33611: LIST
33612: LIST
33613: ST_TO_ADDR
// farusi := [ 4 4$0 , 3 3$0 , 3 3$0 ] ;
33614: LD_ADDR_EXP 62
33618: PUSH
33619: LD_INT 8400
33621: PUSH
33622: LD_INT 6300
33624: PUSH
33625: LD_INT 6300
33627: PUSH
33628: EMPTY
33629: LIST
33630: LIST
33631: LIST
33632: ST_TO_ADDR
// wait2new = [ 5 5$30 , 4 4$30 , 3 3$30 ] ;
33633: LD_ADDR_EXP 67
33637: PUSH
33638: LD_INT 11550
33640: PUSH
33641: LD_INT 9450
33643: PUSH
33644: LD_INT 7350
33646: PUSH
33647: EMPTY
33648: LIST
33649: LIST
33650: LIST
33651: ST_TO_ADDR
// wait3new = [ 6 6$30 , 5 5$30 , 4 4$30 ] ;
33652: LD_ADDR_EXP 75
33656: PUSH
33657: LD_INT 13650
33659: PUSH
33660: LD_INT 11550
33662: PUSH
33663: LD_INT 9450
33665: PUSH
33666: EMPTY
33667: LIST
33668: LIST
33669: LIST
33670: ST_TO_ADDR
// wait_bazooka_attack = [ 4 4$30 , 4 4$0 , 3 3$0 ] ;
33671: LD_ADDR_EXP 76
33675: PUSH
33676: LD_INT 9450
33678: PUSH
33679: LD_INT 8400
33681: PUSH
33682: LD_INT 6300
33684: PUSH
33685: EMPTY
33686: LIST
33687: LIST
33688: LIST
33689: ST_TO_ADDR
// wait_spec_baz = [ 4 4$0 , 5 5$0 , 4 4$0 ] end ;
33690: LD_ADDR_EXP 77
33694: PUSH
33695: LD_INT 8400
33697: PUSH
33698: LD_INT 10500
33700: PUSH
33701: LD_INT 8400
33703: PUSH
33704: EMPTY
33705: LIST
33706: LIST
33707: LIST
33708: ST_TO_ADDR
33709: LD_VAR 0 1
33713: RET
// export cas ; every 0 0$10 do var pom ;
33714: GO 33716
33716: DISABLE
33717: LD_INT 0
33719: PPUSH
// begin if cas [ 3 ] + 10 = 60 then
33720: LD_EXP 85
33724: PUSH
33725: LD_INT 3
33727: ARRAY
33728: PUSH
33729: LD_INT 10
33731: PLUS
33732: PUSH
33733: LD_INT 60
33735: EQUAL
33736: IFFALSE 33772
// cas = cas [ 1 ] + 1 ^ cas [ 2 ] ^ 0 else
33738: LD_ADDR_EXP 85
33742: PUSH
33743: LD_EXP 85
33747: PUSH
33748: LD_INT 1
33750: ARRAY
33751: PUSH
33752: LD_INT 1
33754: PLUS
33755: PUSH
33756: LD_EXP 85
33760: PUSH
33761: LD_INT 2
33763: ARRAY
33764: ADD
33765: PUSH
33766: LD_INT 0
33768: ADD
33769: ST_TO_ADDR
33770: GO 33810
// cas = cas [ 1 ] ^ cas [ 2 ] ^ cas [ 3 ] + 10 ;
33772: LD_ADDR_EXP 85
33776: PUSH
33777: LD_EXP 85
33781: PUSH
33782: LD_INT 1
33784: ARRAY
33785: PUSH
33786: LD_EXP 85
33790: PUSH
33791: LD_INT 2
33793: ARRAY
33794: ADD
33795: PUSH
33796: LD_EXP 85
33800: PUSH
33801: LD_INT 3
33803: ARRAY
33804: PUSH
33805: LD_INT 10
33807: PLUS
33808: ADD
33809: ST_TO_ADDR
// debug_strings = [ cas ] ;
33810: LD_ADDR_OWVAR 48
33814: PUSH
33815: LD_EXP 85
33819: PUSH
33820: EMPTY
33821: LIST
33822: ST_TO_ADDR
// enable ;
33823: ENABLE
// end ;
33824: PPOPN 1
33826: END
// export function pojmenuj_epsilon ( bas ) ; begin
33827: LD_INT 0
33829: PPUSH
// SetBName ( bas , epsilon ) ;
33830: LD_VAR 0 1
33834: PPUSH
33835: LD_STRING epsilon
33837: PPUSH
33838: CALL_OW 500
// end ;
33842: LD_VAR 0 2
33846: RET
